From 0920e12ebed81f1bfeb2a8efb2a3dd9b303e23a2 Mon Sep 17 00:00:00 2001 From: Ree Date: Mon, 10 Jul 2023 21:25:44 +0800 Subject: [PATCH] Delete app/locales directory --- app/locales/ar.ts | 292 ------------------------------------ app/locales/bn.ts | 338 ------------------------------------------ app/locales/cn.ts | 346 ------------------------------------------- app/locales/cs.ts | 238 ----------------------------- app/locales/de.ts | 242 ------------------------------ app/locales/en.ts | 343 ------------------------------------------ app/locales/es.ts | 240 ------------------------------ app/locales/fr.ts | 309 -------------------------------------- app/locales/index.ts | 118 --------------- app/locales/it.ts | 241 ------------------------------ app/locales/jp.ts | 264 --------------------------------- app/locales/ko.ts | 236 ----------------------------- app/locales/no.ts | 164 -------------------- app/locales/ru.ts | 244 ------------------------------ app/locales/tr.ts | 241 ------------------------------ app/locales/tw.ts | 230 ---------------------------- app/locales/vi.ts | 236 ----------------------------- 17 files changed, 4322 deletions(-) delete mode 100644 app/locales/ar.ts delete mode 100644 app/locales/bn.ts delete mode 100644 app/locales/cn.ts delete mode 100644 app/locales/cs.ts delete mode 100644 app/locales/de.ts delete mode 100644 app/locales/en.ts delete mode 100644 app/locales/es.ts delete mode 100644 app/locales/fr.ts delete mode 100644 app/locales/index.ts delete mode 100644 app/locales/it.ts delete mode 100644 app/locales/jp.ts delete mode 100644 app/locales/ko.ts delete mode 100644 app/locales/no.ts delete mode 100644 app/locales/ru.ts delete mode 100644 app/locales/tr.ts delete mode 100644 app/locales/tw.ts delete mode 100644 app/locales/vi.ts diff --git a/app/locales/ar.ts b/app/locales/ar.ts deleted file mode 100644 index b3b5c0216..000000000 --- a/app/locales/ar.ts +++ /dev/null @@ -1,292 +0,0 @@ -import { SubmitKey } from "../store/config"; -import type { PartialLocaleType } from "./index"; - -const ar: PartialLocaleType = { - WIP: "قريبًا...", - Error: { - Unauthorized: - "غير مصرح بالوصول، يرجى إدخال رمز الوصول [auth](/#/auth) في صفحة المصادقة.", - }, - Auth: { - Title: "تحتاج إلى رمز الوصول", - Tips: "يرجى إدخال رمز الوصول أدناه", - Input: "رمز الوصول", - Confirm: "تأكيد", - Later: "لاحقًا", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} رسائل`, - }, - Chat: { - SubTitle: (count: number) => ` ${count} رسائل مع ChatGPT`, - Actions: { - ChatList: "الانتقال إلى قائمة الدردشة", - CompressedHistory: "ملخص ضغط ذاكرة التاريخ", - Export: "تصدير جميع الرسائل كـ Markdown", - Copy: "نسخ", - Stop: "توقف", - Retry: "إعادة المحاولة", - Delete: "حذف", - }, - InputActions: { - Stop: "توقف", - ToBottom: "إلى آخر", - Theme: { - auto: "تلقائي", - light: "نمط فاتح", - dark: "نمط داكن", - }, - Prompt: "الاقتراحات", - Masks: "الأقنعة", - Clear: "مسح السياق", - Settings: "الإعدادات", - }, - Rename: "إعادة تسمية الدردشة", - Typing: "كتابة...", - Input: (submitKey: string) => { - var inputHints = ` اضغط على ${submitKey} للإرسال`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += "، Shift + Enter للإنشاء"; - } - return inputHints + "، / للبحث في الاقتراحات"; - }, - Send: "إرسال", - Config: { - Reset: "إعادة التعيين إلى الإعدادات الافتراضية", - SaveAs: "حفظ كأقنعة", - }, - }, - Export: { - Title: "تصدير الرسائل", - Copy: "نسخ الكل", - Download: "تنزيل", - MessageFromYou: "رسالة منك", - MessageFromChatGPT: "رسالة من ChatGPT", - Share: "مشاركة على ShareGPT", - Format: { - Title: "صيغة التصدير", - SubTitle: "Markdown أو صورة PNG", - }, - IncludeContext: { - Title: "تضمين السياق", - SubTitle: "تصدير اقتراحات السياق في الأقنعة أم لا", - }, - Steps: { - Select: "تحديد", - Preview: "معاينة", - }, - }, - Select: { - Search: "بحث", - All: "تحديد الكل", - Latest: "تحديد أحدث", - Clear: "مسح", - }, - Memory: { - Title: "اقتراحات الذاكرة", - EmptyContent: "لا شيء حتى الآن.", - Send: "إرسال الذاكرة", - Copy: "نسخ الذاكرة", - Reset: "إعادة التعيين", - ResetConfirm: - "سيؤدي إعادة التعيين إلى مسح سجل المحادثة الحالي والذاكرة التاريخية. هل أنت متأكد أنك تريد الاستمرار؟", - }, - Home: { - NewChat: "دردشة جديدة", - DeleteChat: "هل تريد تأكيد حذف المحادثة المحددة؟", - DeleteToast: "تم حذف الدردشة", - Revert: "التراجع", - }, - Settings: { - Title: "الإعدادات", - SubTitle: "جميع الإعدادات", - - Lang: { - Name: "Language", // تنبيه: إذا كنت ترغب في إضافة ترجمة جديدة، يرجى عدم ترجمة هذه القيمة وتركها "Language" - All: "كل اللغات", - }, - Avatar: "الصورة الرمزية", - FontSize: { - Title: "حجم الخط", - SubTitle: "ضبط حجم الخط لمحتوى الدردشة", - }, - InputTemplate: { - Title: "نموذج الإدخال", - SubTitle: "سيتم ملء أحدث رسالة في هذا النموذج", - }, - Update: { - Version: (x: string) => ` الإصدار: ${x}`, - IsLatest: "أحدث إصدار", - CheckUpdate: "التحقق من التحديث", - IsChecking: "جارٍ التحقق من التحديث...", - FoundUpdate: (x: string) => ` تم العثور على إصدار جديد: ${x}`, - GoToUpdate: "التحديث", - }, - SendKey: "مفتاح الإرسال", - Theme: "السمة", - TightBorder: "حدود ضيقة", - SendPreviewBubble: { - Title: "عرض معاينة الـ Send", - SubTitle: "معاينة Markdown في فقاعة", - }, - Mask: { - Splash: { - Title: "شاشة تظهر الأقنعة", - SubTitle: "عرض شاشة تظهر الأقنعة قبل بدء الدردشة الجديدة", - }, - }, - Prompt: { - Disable: { - Title: "تعطيل الاكتمال التلقائي", - SubTitle: "اكتب / لتشغيل الاكتمال التلقائي", - }, - List: "قائمة الاقتراحات", - ListCount: (builtin: number, custom: number) => ` -${builtin} مدمجة، ${custom} تم تعريفها من قبل المستخدم`, - Edit: "تعديل", - Modal: { - Title: "قائمة الاقتراحات", - Add: "إضافة واحدة", - Search: "البحث في الاقتراحات", - }, - EditModal: { - Title: "تحرير الاقتراح", - }, - }, - HistoryCount: { - Title: "عدد الرسائل المرفقة", - SubTitle: "عدد الرسائل المرسلة المرفقة في كل طلب", - }, - CompressThreshold: { - Title: "حد الضغط للتاريخ", - SubTitle: "سيتم الضغط إذا تجاوزت طول الرسائل غير المضغوطة الحد المحدد", - }, - Token: { - Title: "مفتاح API", - SubTitle: "استخدم مفتاحك لتجاوز حد رمز الوصول", - Placeholder: "مفتاح OpenAI API", - }, - Usage: { - Title: "رصيد الحساب", - SubTitle(used: any, total: any) { - return `تم استخدام $${used} من هذا الشهر، الاشتراك ${total}`; - }, - IsChecking: "جارٍ التحقق...", - Check: "التحقق", - NoAccess: "أدخل مفتاح API للتحقق من الرصيد", - }, - AccessCode: { - Title: "رمز الوصول", - SubTitle: "تم تمكين التحكم في الوصول", - Placeholder: "رمز الوصول المطلوب", - }, - Endpoint: { - Title: "نقطة النهاية", - SubTitle: "يجب أن تبدأ نقطة النهاية المخصصة بـ http(s)://", - }, - Model: "النموذج", - Temperature: { - Title: "الحرارة", - SubTitle: "قيمة أكبر تجعل الإخراج أكثر عشوائية", - }, - MaxTokens: { - Title: "الحد الأقصى للرموز", - SubTitle: "الحد الأقصى لعدد الرموز المدخلة والرموز المُنشأة", - }, - PresencePenalty: { - Title: "تأثير الوجود", - SubTitle: "قيمة أكبر تزيد من احتمالية التحدث عن مواضيع جديدة", - }, - FrequencyPenalty: { - Title: "تأثير التكرار", - SubTitle: "قيمة أكبر تقلل من احتمالية تكرار نفس السطر", - }, - }, - Store: { - DefaultTopic: "محادثة جديدة", - BotHello: "مرحبًا! كيف يمكنني مساعدتك اليوم؟", - Error: "حدث خطأ ما، يرجى المحاولة مرة أخرى في وقت لاحق.", - Prompt: { - History: (content: string) => "هذا ملخص لسجل الدردشة كمراجعة: " + content, - Topic: - "يرجى إنشاء عنوان يتكون من أربع إلى خمس كلمات يلخص محادثتنا دون أي مقدمة أو ترقيم أو علامات ترقيم أو نقاط أو رموز إضافية. قم بإزالة علامات التنصيص المحيطة.", - Summarize: - "قم بتلخيص النقاش بشكل موجز في 200 كلمة أو أقل لاستخدامه كاقتراح للسياق في المستقبل.", - }, - }, - Copy: { - Success: "تم النسخ إلى الحافظة", - Failed: "فشلت عملية النسخ، يرجى منح الإذن للوصول إلى الحافظة", - }, - Context: { - Toast: (x: any) => `مع ${x} اقتراحًا ذا سياق`, - Edit: "الاقتراحات السياقية والذاكرة", - Add: "إضافة اقتراح", - Clear: "مسح السياق", - Revert: "التراجع", - }, - Plugin: { - Name: "المكوّن الإضافي", - }, - Mask: { - Name: "الأقنعة", - Page: { - Title: "قالب الاقتراح", - SubTitle: (count: number) => `${count} قوالب الاقتراح`, - Search: "البحث في القوالب", - Create: "إنشاء", - }, - Item: { - Info: (count: number) => `${count} اقتراحات`, - Chat: "الدردشة", - View: "عرض", - Edit: "تعديل", - Delete: "حذف", - DeleteConfirm: "تأكيد الحذف؟", - }, - EditModal: { - Title: (readonly: boolean) => ` -تعديل قالب الاقتراح ${readonly ? "(للقراءة فقط)" : ""}`, - Download: "تنزيل", - Clone: "استنساخ", - }, - Config: { - Avatar: "صورة الروبوت", - Name: "اسم الروبوت", - Sync: { - Title: "استخدام الإعدادات العامة", - SubTitle: "استخدام الإعدادات العامة في هذه الدردشة", - Confirm: "تأكيد الاستبدال بالإعدادات المخصصة بالإعدادات العامة؟", - }, - HideContext: { - Title: "إخفاء اقتراحات السياق", - SubTitle: "عدم عرض اقتراحات السياق في الدردشة", - }, - }, - }, - NewChat: { - Return: "العودة", - Skip: "ابدأ فقط", - Title: "اختيار قناع", - SubTitle: "دردشة مع الروح وراء القناع", - More: "المزيد", - NotShow: "عدم العرض مرة أخرى", - ConfirmNoShow: "تأكيد تعطيله؟ يمكنك تمكينه في الإعدادات لاحقًا.", - }, - - UI: { - Confirm: "تأكيد", - Cancel: "إلغاء", - Close: "إغلاق", - Create: "إنشاء", - Edit: "تعديل", - }, - Exporter: { - Model: "النموذج", - Messages: "الرسائل", - Topic: "الموضوع", - Time: "الوقت", - }, -}; - -export default ar; diff --git a/app/locales/bn.ts b/app/locales/bn.ts deleted file mode 100644 index 065f4276a..000000000 --- a/app/locales/bn.ts +++ /dev/null @@ -1,338 +0,0 @@ -import { SubmitKey } from "../store/config"; -import { PartialLocaleType } from "./index"; - -const bn: PartialLocaleType = { - WIP: "শীঘ্রই আসছে...", - Error: { - Unauthorized: - "অননুমোদিত অ্যাক্সেস, অনুগ্রহ করে [অথোরাইজশন](/#/auth) পৃষ্ঠায় অ্যাক্সেস কোড ইনপুট করুন।", - }, - Auth: { - Title: "একটি অ্যাক্সেস কোড প্রয়োজন", - Tips: "নীচে অ্যাক্সেস কোড ইনপুট করুন", - Input: "অ্যাক্সেস কোড", - Confirm: "নিশ্চিত করুন", - Later: "পরে", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} টি বার্তা`, - }, - Chat: { - SubTitle: (count: number) => `${count} টি বার্তা`, - Actions: { - ChatList: "চ্যাট তালিকায় যান", - CompressedHistory: "সংক্ষিপ্ত ইতিহাস মেমোরি প্রম্পট", - Export: "সমস্ত বার্তা মার্কডাউন হিসাবে রপ্তানি করুন", - Copy: "কপি", - Stop: "বন্ধ করুন", - Retry: "পুনরায় চেষ্টা করুন", - Pin: "পিন করুন", - PinToastContent: "পিন করা হয়েছে ২টি বার্তা প্রম্পটে", - PinToastAction: "দেখুন", - Delete: "মুছে ফেলুন", - Edit: "সম্পাদন করুন", - }, - Commands: { - new: "নতুন চ্যাট শুরু করুন", - newm: "মাস্ক সহ নতুন চ্যাট শুরু করুন", - next: "পরবর্তী চ্যাট", - prev: "পূর্ববর্তী চ্যাট", - clear: "সংশ্লিষ্টতাবদ্ধকরণ পরিষ্কার করুন", - del: "চ্যাট মুছুন", - }, - InputActions: { - Stop: "বন্ধ করুন", - ToBottom: "সর্বশেষতম দিকে", - Theme: { - auto: "অটো", - light: "হালকা থিম", - dark: "ডার্ক থিম", - }, - Prompt: "প্রম্পটগুলিতে", - Masks: "মাস্কগুলি", - Clear: "সংশ্লিষ্টতাবদ্ধকরণ পরিষ্কার করুন", - Settings: "সেটিংস", - }, - Rename: "চ্যাট পুনঃনামকরণ করুন", - Typing: "টাইপিং...", - Input: (submitKey: string) => { - var inputHints = `${submitKey} to send`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ", Shift + Enter to wrap"; - } - return inputHints + ", / to search prompts, : to use commands"; - }, - Send: "প্রেরণ করুন", - Config: { - Reset: "ডিফল্টে রিসেট করুন", - SaveAs: "মাস্ক হিসাবে সংরক্ষণ করুন", - }, - }, - Export: { - Title: "বার্তা রপ্তানিকরণ", - Copy: "সমস্তটি কপি করুন", - Download: "ডাউনলোড করুন", - MessageFromYou: "আপনার বার্তা", - MessageFromChatGPT: "চ্যাটজিপিটির বার্তা", - Share: "শেয়ার করুন শেয়ারজিপিটি তে", - Format: { - Title: "রপ্তানি ফরম্যাট", - SubTitle: "মার্কডাউন বা পিএনজি চিত্র", - }, - IncludeContext: { - Title: "মাস্ক অন্তর্ভুক্ত করুন", - SubTitle: "মাস্কগুলি সংরক্ষণ করবেন না কি", - }, - Steps: { - Select: "নির্বাচন করুন", - Preview: "প্রিভিউ করুন", - }, - }, - Select: { - Search: "অনুসন্ধান করুন", - All: "সমস্তটি নির্বাচন করুন", - Latest: "সর্বশেষতমটি নির্বাচন করুন", - Clear: "পরিষ্কার করুন", - }, - Memory: { - Title: "মেমোরি প্রম্পট", - EmptyContent: "এখনও কিছুই নেই।", - Send: "মেমোরি প্রেরণ করুন", - Copy: "মেমোরি কপি করুন", - Reset: "পুনরায় নিশ্চিত করুন", - ResetConfirm: - "রিসেট করলে বর্তমান চ্যাট ইতিহাস এবং ঐতিহাসিক মেমোরি মুছে যাবে। পুনরায় নির্দিষ্ট করতে চান তা নিশ্চিত করতে চান?", - }, - Home: { - NewChat: "নতুন চ্যাট", - DeleteChat: "নির্বাচিত সংলাপটি মুছতে নিশ্চিত করুন?", - DeleteToast: "চ্যাটটি মুছেছেন", - Revert: "পুনরায়", - }, - Settings: { - Title: "সেটিংস", - SubTitle: "সমস্ত সেটিংস", - Danger: { - Reset: { - Title: "সমস্ত সেটিংস পুনঃনির্দেশ দিন", - SubTitle: "সকল সেটিংস ডিফল্টে পুনঃনির্দেশ দিতে", - Action: "পুনঃনির্দেশ দিন", - Confirm: "সমস্ত সেটিংস ডিফল্টে পুনঃনির্দেশ করতে নিশ্চিত করতে?", - }, - Clear: { - Title: "সমস্ত তথ্য মুছুন", - SubTitle: "সমস্ত বার্তা এবং সেটিংস মুছুন", - Action: "মুছুন", - Confirm: "সমস্ত বার্তা এবং সেটিংস মুছে ফেলতে নিশ্চিত করতে?", - }, - }, - Lang: { - Name: "বাংলা", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "সমস্ত ভাষা", - }, - Avatar: "অবতার", - FontSize: { - Title: "ফন্ট সাইজ", - SubTitle: "চ্যাট সামগ্রীর ফন্ট সাইজ সংশোধন করুন", - }, - - InputTemplate: { - Title: "ইনপুট টেমপ্লেট", - SubTitle: "নতুনতম বার্তা এই টেমপ্লেটে পূরণ হবে", - }, - - Update: { - Version: (x: string) => `Version: ${x}`, - IsLatest: "Latest version", - CheckUpdate: "Check Update", - IsChecking: "Checking update...", - FoundUpdate: (x: string) => `Found new version: ${x}`, - GoToUpdate: "Update", - }, - SendKey: "প্রেরণ চাবি", - Theme: "থিম", - TightBorder: "সঙ্গতি সীমা", - SendPreviewBubble: { - Title: "প্রিভিউ বুলবুল প্রেরণ করুন", - SubTitle: "বুলবুলে মার্কডাউন প্রিভিউ করুন", - }, - Mask: { - Splash: { - Title: "মাস্ক স্প্ল্যাশ স্ক্রিন", - SubTitle: - "নতুন চ্যাট শুরু করার আগে মাস্ক স্প্ল্যাশ স্ক্রিন প্রদর্শন করুন", - }, - Builtin: { - Title: "মূলত মাস্ক গোপন করুন", - SubTitle: "মাস্ক তালিকা থেকে মূলত মাস্কগুলি লুকান", - }, - }, - Prompt: { - Disable: { - Title: "অটো-সম্পূর্ণতা নিষ্ক্রিয় করুন", - SubTitle: "অটো-সম্পূর্ণতা চালু করতে / ইনপুট করুন", - }, - List: "প্রম্পট তালিকা", - ListCount: (builtin: number, custom: number) => - `${builtin} built-in, ${custom} user-defined`, - Edit: "সম্পাদন করুন", - Modal: { - Title: "প্রম্পট তালিকা", - Add: "একটি যোগ করুন", - Search: "সন্ধান প্রম্পট", - }, - EditModal: { - Title: "সম্পাদন করুন প্রম্পট", - }, - }, - HistoryCount: { - Title: "সংযুক্ত বার্তা সংখ্যা", - SubTitle: "প্রতি অনুরোধে প্রেরণ করা গেলে প্রেরণ করা হবে", - }, - CompressThreshold: { - Title: "ইতিহাস সঙ্কুচিত করার সীমা", - SubTitle: - "নকুল বার্তা দৈর্ঘ্য সীমা অতিক্রান্ত হলে ঐ বার্তাটি সঙ্কুচিত হবে", - }, - Token: { - Title: "অ্যাপি কী", - SubTitle: "অ্যাক্সেস কোড সীমা উপেক্ষা করতে আপনার কীটি ব্যবহার করুন", - Placeholder: "OpenAI API কী", - }, - Usage: { - Title: "একাউন্ট ব্যালেন্স", - SubTitle(used: any, total: any) { - return `এই মাসে ব্যবহৃত $${used}, সাবস্ক্রিপশন $${total}`; - }, - IsChecking: "চেক করা হচ্ছে...", - Check: "চেক", - NoAccess: "ব্যালেন্স চেক করতে অ্যাপি কী ইনপুট করুন", - }, - AccessCode: { - Title: "অ্যাক্সেস কোড", - SubTitle: "অ্যাক্সেস নিয়ন্ত্রণ সক্রিয়", - Placeholder: "অ্যাক্সেস কোড প্রয়োজন", - }, - Endpoint: { - Title: "ইনটারপয়েন্ট", - SubTitle: "কাস্টম এন্ডপয়েন্টটি হতে হবে http(s):// দিয়ে শুরু হতে হবে", - }, - Model: "মডেল", - Temperature: { - Title: "তাপমাত্রা", - SubTitle: "আরতি মান বেশি করলে বেশি এলোমেলো আউটপুট হবে", - }, - TopP: { - Title: "শীর্ষ পি", - SubTitle: "তাপমাত্রা সঙ্গে এই মান পরিবর্তন করবেন না", - }, - MaxTokens: { - Title: "সর্বাধিক টোকেন", - SubTitle: "ইনপুট টোকেন এবং উৎপাদিত টোকেনের সর্বাধিক দৈর্ঘ্য", - }, - PresencePenalty: { - Title: "উপস্থিতির জরিমানা", - SubTitle: "আরতি মান বেশি করলে নতুন বিষয়গুলি সম্ভাব্যতা বাড়াতে পারে", - }, - FrequencyPenalty: { - Title: "ফ্রিকুয়েন্সি জরিমানা", - SubTitle: - "আরতি মান বাড়ালে একই লাইন পুনরায় ব্যাবহার করার সম্ভাবনা হ্রাস পায়", - }, - }, - Store: { - DefaultTopic: "নতুন সংলাপ", - BotHello: "হ্যালো! আজকে আপনাকে কিভাবে সাহায্য করতে পারি?", - Error: "কিছু নিয়ে ভুল হয়েছে, পরে আবার চেষ্টা করুন।", - Prompt: { - History: (content: string) => - "এটি চ্যাট ইতিহাসের সংক্ষিপ্ত সংকলনের মতো: " + content, - Topic: - "আমাদের সংলাপটির চার থেকে পাঁচ শব্দের একটি শিরোনাম তৈরি করুন যা আমাদের আলাপের সংক্ষিপ্তসার হিসাবে যোগ হবে না, যেমন অভিবৃত্তি, বিন্যাস, উদ্ধৃতি, পূর্বচালক চিহ্ন, পূর্বরোবক্তির যেকোনো চিহ্ন বা অতিরিক্ত পাঠ। মেয়াদশেষ উদ্ধৃতি চেষ্টা করুন।", - Summarize: - "২০০ শব্দের লম্বা হয়ে মুহূর্তে আলোচনা সংক্ষেপের রপ্তানি করুন, যেটি ভবিষ্যতের প্রম্পট হিসাবে ব্যবহার করবেন।", - }, - }, - Copy: { - Success: "ক্লিপবোর্ডে কপি করা হয়েছে", - Failed: "কপি ব্যর্থ, অনুমতি প্রদান করার জন্য অনুমতি প্রদান করুন", - }, - Context: { - Toast: (x: any) => `With ${x} contextual prompts`, - Edit: "বর্তমান চ্যাট সেটিংস", - Add: "একটি প্রম্পট যোগ করুন", - Clear: "সঙ্গতি পরিস্কার করুন", - Revert: "পূর্ববর্তী অবস্থানে ফিরে যান", - }, - Plugin: { - Name: "প্লাগইন", - }, - Mask: { - Name: "মাস্ক", - Page: { - Title: "প্রম্পট টেমপ্লেট", - SubTitle: (count: number) => `${count} টি প্রম্পট টেমপ্লেট`, - Search: "টেমপ্লেট অনুসন্ধান করুন", - Create: "তৈরি করুন", - }, - Item: { - Info: (count: number) => `${count} প্রম্পট`, - Chat: "চ্যাট", - View: "দেখুন", - Edit: "সম্পাদন করুন", - Delete: "মুছে ফেলুন", - DeleteConfirm: "মুছে ফেলতে নিশ্চিত করুন?", - }, - EditModal: { - Title: (readonly: boolean) => - `প্রম্পট টেমপ্লেট সম্পাদন করুন ${readonly ? "(readonly)" : ""}`, - Download: "ডাউনলোড করুন", - Clone: "ক্লোন করুন", - }, - Config: { - Avatar: "বট অবতার", - Name: "বটের নাম", - Sync: { - Title: "গ্লোবাল কনফিগ ব্যবহার করুন", - SubTitle: "এই চ্যাটে গ্লোবাল কনফিগ ব্যবহার করুন", - Confirm: - "গ্লোবাল কনফিগ দ্বারা কাস্টম কনফিগ ওভাররাইড করতে নিশ্চিত করতে?", - }, - HideContext: { - Title: "সংশ্লিষ্টতা প্রম্পটগুলি লুকান", - SubTitle: "চ্যাটে সংশ্লিষ্টতা প্রম্পটগুলি দেখাবেন না", - }, - Share: { - Title: "এই মাস্কটি শেয়ার করুন", - SubTitle: "এই মাস্কের একটি লিঙ্ক তৈরি করুন", - Action: "লিঙ্ক কপি করুন", - }, - }, - }, - NewChat: { - Return: "ফিরে যান", - Skip: "শুরু করুন", - Title: "মাস্ক নির্বাচন করুন", - SubTitle: "মাস্কের পিছনে আত্মার সঙ্গে চ্যাট করুন", - More: "আরো খুঁজুন", - NotShow: "এখনও দেখাবেন না", - ConfirmNoShow: - "নিষ্ক্রিয় করতে নিশ্চিত করুন? পরে আপনি এটি সেটিংসে সক্ষম করতে পারবেন।", - }, - - UI: { - Confirm: "নিশ্চিত করুন", - Cancel: "বাতিল করুন", - Close: "বন্ধ করুন", - Create: "তৈরি করুন", - Edit: "সম্পাদন করুন", - }, - Exporter: { - Model: "মডেল", - Messages: "বার্তা", - Topic: "টপিক", - Time: "সময়", - }, -}; - -export default bn; diff --git a/app/locales/cn.ts b/app/locales/cn.ts deleted file mode 100644 index 3675ee208..000000000 --- a/app/locales/cn.ts +++ /dev/null @@ -1,346 +0,0 @@ -import { SubmitKey } from "../store/config"; - -const cn = { - WIP: "该功能仍在开发中……", - Error: { - Unauthorized: - "访问密码不正确或为空,请前往[登录](/#/auth)页输入正确的访问密码,或者在[设置](/#/settings)页填入你自己的 API Key。", - }, - Auth: { - Title: "需要密码", - Tips: "管理员开启了密码验证,请在下方填入访问码", - Input: "在此处填写访问码", - Confirm: "确认", - Later: "稍后再说", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} 条对话`, - }, - Chat: { - SubTitle: (count: number) => `共 ${count} 条对话`, - Actions: { - ChatList: "查看消息列表", - CompressedHistory: "查看压缩后的历史 Prompt", - Export: "导出聊天记录", - Copy: "复制", - Stop: "停止", - Retry: "重试", - Pin: "固定", - PinToastContent: "已将 1 条对话固定至预设提示词", - PinToastAction: "查看", - Delete: "删除", - Edit: "编辑", - }, - Commands: { - new: "新建聊天", - newm: "从面具新建聊天", - next: "下一个聊天", - prev: "上一个聊天", - clear: "清除上下文", - del: "删除聊天", - }, - InputActions: { - Stop: "停止响应", - ToBottom: "滚到最新", - Theme: { - auto: "自动主题", - light: "亮色模式", - dark: "深色模式", - }, - Prompt: "快捷指令", - Masks: "所有面具", - Clear: "清除聊天", - Settings: "对话设置", - }, - Rename: "重命名对话", - Typing: "正在输入…", - Input: (submitKey: string) => { - var inputHints = `${submitKey} 发送`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ",Shift + Enter 换行"; - } - return inputHints + ",/ 触发补全,: 触发命令"; - }, - Send: "发送", - Config: { - Reset: "清除记忆", - SaveAs: "存为面具", - }, - IsContext: "预设提示词", - }, - Export: { - Title: "分享聊天记录", - Copy: "全部复制", - Download: "下载文件", - Share: "分享到 ShareGPT", - MessageFromYou: "来自你的消息", - MessageFromChatGPT: "来自 ChatGPT 的消息", - Format: { - Title: "导出格式", - SubTitle: "可以导出 Markdown 文本或者 PNG 图片", - }, - IncludeContext: { - Title: "包含面具上下文", - SubTitle: "是否在消息中展示面具上下文", - }, - Steps: { - Select: "选取", - Preview: "预览", - }, - Image: { - Toast: "正在生成截图", - Modal: "长按或右键保存图片", - }, - }, - Select: { - Search: "搜索消息", - All: "选取全部", - Latest: "最近几条", - Clear: "清除选中", - }, - Memory: { - Title: "历史摘要", - EmptyContent: "对话内容过短,无需总结", - Send: "自动压缩聊天记录并作为上下文发送", - Copy: "复制摘要", - Reset: "[unused]", - ResetConfirm: "确认清空历史摘要?", - }, - Home: { - NewChat: "新的聊天", - DeleteChat: "确认删除选中的对话?", - DeleteToast: "已删除会话", - Revert: "撤销", - }, - Settings: { - Title: "设置", - SubTitle: "所有设置选项", - - Danger: { - Reset: { - Title: "重置所有设置", - SubTitle: "重置所有设置项回默认值", - Action: "立即重置", - Confirm: "确认重置所有设置?", - }, - Clear: { - Title: "清除所有数据", - SubTitle: "清除所有聊天、设置数据", - Action: "立即清除", - Confirm: "确认清除所有聊天、设置数据?", - }, - }, - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "所有语言", - }, - Avatar: "头像", - FontSize: { - Title: "字体大小", - SubTitle: "聊天内容的字体大小", - }, - - InputTemplate: { - Title: "用户输入预处理", - SubTitle: "用户最新的一条消息会填充到此模板", - }, - - Update: { - Version: (x: string) => `当前版本:${x}`, - IsLatest: "已是最新版本", - CheckUpdate: "检查更新", - IsChecking: "正在检查更新...", - FoundUpdate: (x: string) => `发现新版本:${x}`, - GoToUpdate: "前往更新", - }, - SendKey: "发送键", - Theme: "主题", - TightBorder: "无边框模式", - SendPreviewBubble: { - Title: "预览气泡", - SubTitle: "在预览气泡中预览 Markdown 内容", - }, - Mask: { - Splash: { - Title: "面具启动页", - SubTitle: "新建聊天时,展示面具启动页", - }, - Builtin: { - Title: "隐藏内置面具", - SubTitle: "在所有面具列表中隐藏内置面具", - }, - }, - Prompt: { - Disable: { - Title: "禁用提示词自动补全", - SubTitle: "在输入框开头输入 / 即可触发自动补全", - }, - List: "自定义提示词列表", - ListCount: (builtin: number, custom: number) => - `内置 ${builtin} 条,用户定义 ${custom} 条`, - Edit: "编辑", - Modal: { - Title: "提示词列表", - Add: "新建", - Search: "搜索提示词", - }, - EditModal: { - Title: "编辑提示词", - }, - }, - HistoryCount: { - Title: "附带历史消息数", - SubTitle: "每次请求携带的历史消息数", - }, - CompressThreshold: { - Title: "历史消息长度压缩阈值", - SubTitle: "当未压缩的历史消息超过该值时,将进行压缩", - }, - Token: { - Title: "API Key", - SubTitle: "使用自己的 Key 可绕过密码访问限制", - Placeholder: "OpenAI API Key", - }, - - Usage: { - Title: "余额查询", - SubTitle(used: any, total: any) { - return `本月已使用 $${used},订阅总额 $${total}`; - }, - IsChecking: "正在检查…", - Check: "重新检查", - NoAccess: "输入 API Key 或访问密码查看余额", - }, - AccessCode: { - Title: "访问密码", - SubTitle: "管理员已开启加密访问", - Placeholder: "请输入访问密码", - }, - CustomModel: { - Title: "自定义模型名", - SubTitle: "增加自定义模型可选项,使用英文逗号隔开", - }, - Model: "模型 (model)", - Temperature: { - Title: "随机性 (temperature)", - SubTitle: "值越大,回复越随机", - }, - TopP: { - Title: "核采样 (top_p)", - SubTitle: "与随机性类似,但不要和随机性一起更改", - }, - MaxTokens: { - Title: "单次回复限制 (max_tokens)", - SubTitle: "单次交互所用的最大 Token 数", - }, - PresencePenalty: { - Title: "话题新鲜度 (presence_penalty)", - SubTitle: "值越大,越有可能扩展到新话题", - }, - FrequencyPenalty: { - Title: "频率惩罚度 (frequency_penalty)", - SubTitle: "值越大,越有可能降低重复字词", - }, - }, - Store: { - DefaultTopic: "新的聊天", - BotHello: "有什么可以帮你的吗", - Error: "出错了,稍后重试吧", - Prompt: { - History: (content: string) => "这是历史聊天总结作为前情提要:" + content, - Topic: - "使用四到五个字直接返回这句话的简要主题,不要解释、不要标点、不要语气词、不要多余文本,如果没有主题,请直接返回“闲聊”", - Summarize: - "简要总结一下对话内容,用作后续的上下文提示 prompt,控制在 200 字以内", - }, - }, - Copy: { - Success: "已写入剪切板", - Failed: "复制失败,请赋予剪切板权限", - }, - Context: { - Toast: (x: any) => `包含 ${x} 条预设提示词`, - Edit: "当前对话设置", - Add: "新增预设对话", - Clear: "上下文已清除", - Revert: "恢复上下文", - }, - Plugin: { - Name: "插件", - }, - Mask: { - Name: "面具", - Page: { - Title: "预设角色面具", - SubTitle: (count: number) => `${count} 个预设角色定义`, - Search: "搜索角色面具", - Create: "新建", - }, - Item: { - Info: (count: number) => `包含 ${count} 条预设对话`, - Chat: "对话", - View: "查看", - Edit: "编辑", - Delete: "删除", - DeleteConfirm: "确认删除?", - }, - EditModal: { - Title: (readonly: boolean) => - `编辑预设面具 ${readonly ? "(只读)" : ""}`, - Download: "下载预设", - Clone: "克隆预设", - }, - Config: { - Avatar: "角色头像", - Name: "角色名称", - Sync: { - Title: "使用全局设置", - SubTitle: "当前对话是否使用全局模型设置", - Confirm: "当前对话的自定义设置将会被自动覆盖,确认启用全局设置?", - }, - HideContext: { - Title: "隐藏预设对话", - SubTitle: "隐藏后预设对话不会出现在聊天界面", - }, - Share: { - Title: "分享此面具", - SubTitle: "生成此面具的直达链接", - Action: "复制链接", - }, - }, - }, - NewChat: { - Return: "返回", - Skip: "直接开始", - NotShow: "不再展示", - ConfirmNoShow: "确认禁用?禁用后可以随时在设置中重新启用。", - Title: "挑选一个面具", - SubTitle: "现在开始,与面具背后的灵魂思维碰撞", - More: "查看全部", - }, - - UI: { - Confirm: "确认", - Cancel: "取消", - Close: "关闭", - Create: "新建", - Edit: "编辑", - }, - Exporter: { - Model: "模型", - Messages: "消息", - Topic: "主题", - Time: "时间", - }, -}; - -type DeepPartial = T extends object - ? { - [P in keyof T]?: DeepPartial; - } - : T; - -export type LocaleType = typeof cn; -export type PartialLocaleType = DeepPartial; - -export default cn; diff --git a/app/locales/cs.ts b/app/locales/cs.ts deleted file mode 100644 index 348e16afc..000000000 --- a/app/locales/cs.ts +++ /dev/null @@ -1,238 +0,0 @@ -import { SubmitKey } from "../store/config"; -import type { PartialLocaleType } from "./index"; - -const cs: PartialLocaleType = { - WIP: "V přípravě...", - Error: { - Unauthorized: - "Neoprávněný přístup, zadejte přístupový kód na stránce nastavení.", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} zpráv`, - }, - Chat: { - SubTitle: (count: number) => `${count} zpráv s ChatGPT`, - Actions: { - ChatList: "Přejít na seznam chatů", - CompressedHistory: "Pokyn z komprimované paměti historie", - Export: "Exportovat všechny zprávy jako Markdown", - Copy: "Kopírovat", - Stop: "Zastavit", - Retry: "Zopakovat", - Delete: "Smazat", - }, - Rename: "Přejmenovat chat", - Typing: "Píše...", - Input: (submitKey: string) => { - var inputHints = `${submitKey} pro odeslání`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ", Shift + Enter pro řádkování"; - } - return inputHints + ", / pro vyhledávání pokynů"; - }, - Send: "Odeslat", - Config: { - Reset: "Obnovit výchozí", - SaveAs: "Uložit jako Masku", - }, - }, - Export: { - Title: "Všechny zprávy", - Copy: "Kopírovat vše", - Download: "Stáhnout", - MessageFromYou: "Zpráva od vás", - MessageFromChatGPT: "Zpráva z ChatGPT", - }, - Memory: { - Title: "Pokyn z paměti", - EmptyContent: "Zatím nic.", - Send: "Odeslat paměť", - Copy: "Kopírovat paměť", - Reset: "Obnovit relaci", - ResetConfirm: - "Resetováním se vymaže historie aktuálních konverzací i paměť historie pokynů. Opravdu chcete provést obnovu?", - }, - Home: { - NewChat: "Nový chat", - DeleteChat: "Potvrzujete smazání vybrané konverzace?", - DeleteToast: "Chat smazán", - Revert: "Zvrátit", - }, - Settings: { - Title: "Nastavení", - SubTitle: "Všechna nastavení", - - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "Všechny jazyky", - }, - Avatar: "Avatar", - FontSize: { - Title: "Velikost písma", - SubTitle: "Nastavení velikosti písma obsahu chatu", - }, - Update: { - Version: (x: string) => `Verze: ${x}`, - IsLatest: "Aktuální verze", - CheckUpdate: "Zkontrolovat aktualizace", - IsChecking: "Kontrola aktualizace...", - FoundUpdate: (x: string) => `Nalezena nová verze: ${x}`, - GoToUpdate: "Aktualizovat", - }, - SendKey: "Odeslat klíč", - Theme: "Téma", - TightBorder: "Těsné ohraničení", - SendPreviewBubble: { - Title: "Odesílat chatovací bublinu s náhledem", - SubTitle: "Zobrazit v náhledu bubliny", - }, - Mask: { - Splash: { - Title: "Úvodní obrazovka Masek", - SubTitle: "Před zahájením nového chatu zobrazte úvodní obrazovku Masek", - }, - }, - Prompt: { - Disable: { - Title: "Deaktivovat automatické dokončování", - SubTitle: "Zadejte / pro spuštění automatického dokončování", - }, - List: "Seznam pokynů", - ListCount: (builtin: number, custom: number) => - `${builtin} vestavěných, ${custom} uživatelských`, - Edit: "Upravit", - Modal: { - Title: "Seznam pokynů", - Add: "Přidat pokyn", - Search: "Hledat pokyny", - }, - EditModal: { - Title: "Editovat pokyn", - }, - }, - HistoryCount: { - Title: "Počet připojených zpráv", - SubTitle: "Počet odeslaných připojených zpráv na žádost", - }, - CompressThreshold: { - Title: "Práh pro kompresi historie", - SubTitle: - "Komprese proběhne, pokud délka nekomprimovaných zpráv přesáhne tuto hodnotu", - }, - Token: { - Title: "API klíč", - SubTitle: "Použitím klíče ignorujete omezení přístupového kódu", - Placeholder: "Klíč API OpenAI", - }, - Usage: { - Title: "Stav účtu", - SubTitle(used: any, total: any) { - return `Použito tento měsíc $${used}, předplaceno $${total}`; - }, - IsChecking: "Kontroluji...", - Check: "Zkontrolovat", - NoAccess: "Pro kontrolu zůstatku zadejte klíč API", - }, - AccessCode: { - Title: "Přístupový kód", - SubTitle: "Kontrola přístupu povolena", - Placeholder: "Potřebujete přístupový kód", - }, - Model: "Model", - Temperature: { - Title: "Teplota", - SubTitle: "Větší hodnota činí výstup náhodnějším", - }, - MaxTokens: { - Title: "Max. počet tokenů", - SubTitle: "Maximální délka vstupního tokenu a generovaných tokenů", - }, - PresencePenalty: { - Title: "Přítomnostní korekce", - SubTitle: "Větší hodnota zvyšuje pravděpodobnost nových témat.", - }, - FrequencyPenalty: { - Title: "Frekvenční penalizace", - SubTitle: - "Větší hodnota snižující pravděpodobnost opakování stejného řádku", - }, - }, - Store: { - DefaultTopic: "Nová konverzace", - BotHello: "Ahoj! Jak mohu dnes pomoci?", - Error: "Něco se pokazilo, zkuste to prosím později.", - Prompt: { - History: (content: string) => - "Toto je shrnutí historie chatu mezi umělou inteligencí a uživatelem v podobě rekapitulace: " + - content, - Topic: - "Vytvořte prosím název o čtyřech až pěti slovech vystihující průběh našeho rozhovoru bez jakýchkoli úvodních slov, interpunkčních znamének, uvozovek, teček, symbolů nebo dalšího textu. Odstraňte uvozovky.", - Summarize: - "Krátce shrň naši diskusi v rozsahu do 200 slov a použij ji jako podnět pro budoucí kontext.", - }, - }, - Copy: { - Success: "Zkopírováno do schránky", - Failed: "Kopírování selhalo, prosím, povolte přístup ke schránce", - }, - Context: { - Toast: (x: any) => `Použití ${x} kontextových pokynů`, - Edit: "Kontextové a paměťové pokyny", - Add: "Přidat pokyn", - }, - Plugin: { - Name: "Plugin", - }, - Mask: { - Name: "Maska", - Page: { - Title: "Šablona pokynu", - SubTitle: (count: number) => `${count} šablon pokynů`, - Search: "Hledat v šablonách", - Create: "Vytvořit", - }, - Item: { - Info: (count: number) => `${count} pokynů`, - Chat: "Chat", - View: "Zobrazit", - Edit: "Upravit", - Delete: "Smazat", - DeleteConfirm: "Potvrdit smazání?", - }, - EditModal: { - Title: (readonly: boolean) => - `Editovat šablonu pokynu ${readonly ? "(pouze ke čtení)" : ""}`, - Download: "Stáhnout", - Clone: "Duplikovat", - }, - Config: { - Avatar: "Avatar Bota", - Name: "Jméno Bota", - }, - }, - NewChat: { - Return: "Zpět", - Skip: "Přeskočit", - Title: "Vyberte Masku", - SubTitle: "Chatovat s duší za Maskou", - More: "Najít více", - NotShow: "Nezobrazovat znovu", - ConfirmNoShow: "Potvrdit zakázání?Můžete jej povolit později v nastavení.", - }, - - UI: { - Confirm: "Potvrdit", - Cancel: "Zrušit", - Close: "Zavřít", - Create: "Vytvořit", - Edit: "Upravit", - }, - Exporter: { - Model: "Model", - Messages: "Zprávy", - Topic: "Téma", - Time: "Čas", - }, -}; - -export default cs; diff --git a/app/locales/de.ts b/app/locales/de.ts deleted file mode 100644 index d7e88cc8b..000000000 --- a/app/locales/de.ts +++ /dev/null @@ -1,242 +0,0 @@ -import { SubmitKey } from "../store/config"; -import type { PartialLocaleType } from "./index"; - -const de: PartialLocaleType = { - WIP: "In Bearbeitung...", - Error: { - Unauthorized: - "Unbefugter Zugriff, bitte geben Sie den Zugangscode auf der Einstellungsseite ein.", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} Nachrichten`, - }, - Chat: { - SubTitle: (count: number) => `${count} Nachrichten mit ChatGPT`, - Actions: { - ChatList: "Zur Chat-Liste gehen", - CompressedHistory: "Komprimierter Gedächtnis-Prompt", - Export: "Alle Nachrichten als Markdown exportieren", - Copy: "Kopieren", - Stop: "Stop", - Retry: "Wiederholen", - Delete: "Delete", - }, - Rename: "Chat umbenennen", - Typing: "Tippen...", - Input: (submitKey: string) => { - var inputHints = `${submitKey} um zu Senden`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ", Umschalt + Eingabe für Zeilenumbruch"; - } - return inputHints + ", / zum Durchsuchen von Prompts"; - }, - Send: "Senden", - Config: { - Reset: "Reset to Default", - SaveAs: "Save as Mask", - }, - }, - Export: { - Title: "Alle Nachrichten", - Copy: "Alles kopieren", - Download: "Herunterladen", - MessageFromYou: "Deine Nachricht", - MessageFromChatGPT: "Nachricht von ChatGPT", - }, - Memory: { - Title: "Gedächtnis-Prompt", - EmptyContent: "Noch nichts.", - Send: "Gedächtnis senden", - Copy: "Gedächtnis kopieren", - Reset: "Sitzung zurücksetzen", - ResetConfirm: - "Das Zurücksetzen löscht den aktuellen Gesprächsverlauf und das Langzeit-Gedächtnis. Möchten Sie wirklich zurücksetzen?", - }, - Home: { - NewChat: "Neuer Chat", - DeleteChat: "Bestätigen Sie, um das ausgewählte Gespräch zu löschen?", - DeleteToast: "Chat gelöscht", - Revert: "Zurücksetzen", - }, - Settings: { - Title: "Einstellungen", - SubTitle: "Alle Einstellungen", - - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "Alle Sprachen", - }, - Avatar: "Avatar", - FontSize: { - Title: "Schriftgröße", - SubTitle: "Schriftgröße des Chat-Inhalts anpassen", - }, - Update: { - Version: (x: string) => `Version: ${x}`, - IsLatest: "Neueste Version", - CheckUpdate: "Update prüfen", - IsChecking: "Update wird geprüft...", - FoundUpdate: (x: string) => `Neue Version gefunden: ${x}`, - GoToUpdate: "Aktualisieren", - }, - SendKey: "Senden-Taste", - Theme: "Erscheinungsbild", - TightBorder: "Enger Rahmen", - SendPreviewBubble: { - Title: "Vorschau-Bubble senden", - SubTitle: "Preview markdown in bubble", - }, - Mask: { - Splash: { - Title: "Mask Splash Screen", - SubTitle: "Show a mask splash screen before starting new chat", - }, - }, - Prompt: { - Disable: { - Title: "Autovervollständigung deaktivieren", - SubTitle: "Autovervollständigung mit / starten", - }, - List: "Prompt-Liste", - ListCount: (builtin: number, custom: number) => - `${builtin} integriert, ${custom} benutzerdefiniert`, - Edit: "Bearbeiten", - Modal: { - Title: "Prompt List", - Add: "Add One", - Search: "Search Prompts", - }, - EditModal: { - Title: "Edit Prompt", - }, - }, - HistoryCount: { - Title: "Anzahl der angehängten Nachrichten", - SubTitle: "Anzahl der pro Anfrage angehängten gesendeten Nachrichten", - }, - CompressThreshold: { - Title: "Schwellenwert für Verlaufskomprimierung", - SubTitle: - "Komprimierung, wenn die Länge der unkomprimierten Nachrichten den Wert überschreitet", - }, - Token: { - Title: "API-Schlüssel", - SubTitle: - "Verwenden Sie Ihren Schlüssel, um das Zugangscode-Limit zu ignorieren", - Placeholder: "OpenAI API-Schlüssel", - }, - Usage: { - Title: "Kontostand", - SubTitle(used: any, total: any) { - return `Diesen Monat ausgegeben $${used}, Abonnement $${total}`; - }, - IsChecking: "Wird überprüft...", - Check: "Erneut prüfen", - NoAccess: "API-Schlüssel eingeben, um den Kontostand zu überprüfen", - }, - AccessCode: { - Title: "Zugangscode", - SubTitle: "Zugangskontrolle aktiviert", - Placeholder: "Zugangscode erforderlich", - }, - Model: "Modell", - Temperature: { - Title: "Temperature", //Temperatur - SubTitle: "Ein größerer Wert führt zu zufälligeren Antworten", - }, - MaxTokens: { - Title: "Max Tokens", //Maximale Token - SubTitle: "Maximale Anzahl der Anfrage- plus Antwort-Token", - }, - PresencePenalty: { - Title: "Presence Penalty", //Anwesenheitsstrafe - SubTitle: - "Ein größerer Wert erhöht die Wahrscheinlichkeit, dass über neue Themen gesprochen wird", - }, - FrequencyPenalty: { - Title: "Frequency Penalty", // HäufigkeitStrafe - SubTitle: - "Ein größerer Wert, der die Wahrscheinlichkeit verringert, dass dieselbe Zeile wiederholt wird", - }, - }, - Store: { - DefaultTopic: "Neues Gespräch", - BotHello: "Hallo! Wie kann ich Ihnen heute helfen?", - Error: - "Etwas ist schief gelaufen, bitte versuchen Sie es später noch einmal.", - Prompt: { - History: (content: string) => - "Dies ist eine Zusammenfassung des Chatverlaufs zwischen dem KI und dem Benutzer als Rückblick: " + - content, - Topic: - "Bitte erstellen Sie einen vier- bis fünfwörtigen Titel, der unser Gespräch zusammenfasst, ohne Einleitung, Zeichensetzung, Anführungszeichen, Punkte, Symbole oder zusätzlichen Text. Entfernen Sie Anführungszeichen.", - Summarize: - "Fassen Sie unsere Diskussion kurz in 200 Wörtern oder weniger zusammen, um sie als Pronpt für zukünftige Gespräche zu verwenden.", - }, - }, - Copy: { - Success: "In die Zwischenablage kopiert", - Failed: - "Kopieren fehlgeschlagen, bitte geben Sie die Berechtigung zum Zugriff auf die Zwischenablage frei", - }, - Context: { - Toast: (x: any) => `Mit ${x} Kontext-Prompts`, - Edit: "Kontext- und Gedächtnis-Prompts", - Add: "Hinzufügen", - }, - Plugin: { - Name: "Plugin", - }, - Mask: { - Name: "Mask", - Page: { - Title: "Prompt Template", - SubTitle: (count: number) => `${count} prompt templates`, - Search: "Search Templates", - Create: "Create", - }, - Item: { - Info: (count: number) => `${count} prompts`, - Chat: "Chat", - View: "View", - Edit: "Edit", - Delete: "Delete", - DeleteConfirm: "Confirm to delete?", - }, - EditModal: { - Title: (readonly: boolean) => - `Edit Prompt Template ${readonly ? "(readonly)" : ""}`, - Download: "Download", - Clone: "Clone", - }, - Config: { - Avatar: "Bot Avatar", - Name: "Bot Name", - }, - }, - NewChat: { - Return: "Return", - Skip: "Skip", - Title: "Pick a Mask", - SubTitle: "Chat with the Soul behind the Mask", - More: "Find More", - NotShow: "Not Show Again", - ConfirmNoShow: "Confirm to disable?You can enable it in settings later.", - }, - - UI: { - Confirm: "Confirm", - Cancel: "Cancel", - Close: "Close", - Create: "Create", - Edit: "Edit", - }, - Exporter: { - Model: "Modell", - Messages: "Nachrichten", - Topic: "Thema", - Time: "Zeit", - }, -}; - -export default de; diff --git a/app/locales/en.ts b/app/locales/en.ts deleted file mode 100644 index e8ec6d677..000000000 --- a/app/locales/en.ts +++ /dev/null @@ -1,343 +0,0 @@ -import { SubmitKey } from "../store/config"; -import { LocaleType } from "./index"; - -// if you are adding a new translation, please use PartialLocaleType instead of LocaleType -const en: LocaleType = { - WIP: "Coming Soon...", - Error: { - Unauthorized: - "Unauthorized access, please enter access code in [auth](/#/auth) page.", - }, - Auth: { - Title: "Need Access Code", - Tips: "Please enter access code below", - Input: "access code", - Confirm: "Confirm", - Later: "Later", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} messages`, - }, - Chat: { - SubTitle: (count: number) => `${count} messages`, - Actions: { - ChatList: "Go To Chat List", - CompressedHistory: "Compressed History Memory Prompt", - Export: "Export All Messages as Markdown", - Copy: "Copy", - Stop: "Stop", - Retry: "Retry", - Pin: "Pin", - PinToastContent: "Pinned 1 messages to contextual prompts", - PinToastAction: "View", - Delete: "Delete", - Edit: "Edit", - }, - Commands: { - new: "Start a new chat", - newm: "Start a new chat with mask", - next: "Next Chat", - prev: "Previous Chat", - clear: "Clear Context", - del: "Delete Chat", - }, - InputActions: { - Stop: "Stop", - ToBottom: "To Latest", - Theme: { - auto: "Auto", - light: "Light Theme", - dark: "Dark Theme", - }, - Prompt: "Prompts", - Masks: "Masks", - Clear: "Clear Context", - Settings: "Settings", - }, - Rename: "Rename Chat", - Typing: "Typing…", - Input: (submitKey: string) => { - var inputHints = `${submitKey} to send`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ", Shift + Enter to wrap"; - } - return inputHints + ", / to search prompts, : to use commands"; - }, - Send: "Send", - Config: { - Reset: "Reset to Default", - SaveAs: "Save as Mask", - }, - IsContext: "Contextual Prompt", - }, - Export: { - Title: "Export Messages", - Copy: "Copy All", - Download: "Download", - MessageFromYou: "Message From You", - MessageFromChatGPT: "Message From ChatGPT", - Share: "Share to ShareGPT", - Format: { - Title: "Export Format", - SubTitle: "Markdown or PNG Image", - }, - IncludeContext: { - Title: "Including Context", - SubTitle: "Export context prompts in mask or not", - }, - Steps: { - Select: "Select", - Preview: "Preview", - }, - Image: { - Toast: "Capturing Image...", - Modal: "Long press or right click to save image", - }, - }, - Select: { - Search: "Search", - All: "Select All", - Latest: "Select Latest", - Clear: "Clear", - }, - Memory: { - Title: "Memory Prompt", - EmptyContent: "Nothing yet.", - Send: "Send Memory", - Copy: "Copy Memory", - Reset: "Reset Session", - ResetConfirm: - "Resetting will clear the current conversation history and historical memory. Are you sure you want to reset?", - }, - Home: { - NewChat: "New Chat", - DeleteChat: "Confirm to delete the selected conversation?", - DeleteToast: "Chat Deleted", - Revert: "Revert", - }, - Settings: { - Title: "Settings", - SubTitle: "All Settings", - Danger: { - Reset: { - Title: "Reset All Settings", - SubTitle: "Reset all setting items to default", - Action: "Reset", - Confirm: "Confirm to reset all settings to default?", - }, - Clear: { - Title: "Clear All Data", - SubTitle: "Clear all messages and settings", - Action: "Clear", - Confirm: "Confirm to clear all messages and settings?", - }, - }, - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "All Languages", - }, - Avatar: "Avatar", - FontSize: { - Title: "Font Size", - SubTitle: "Adjust font size of chat content", - }, - - InputTemplate: { - Title: "Input Template", - SubTitle: "Newest message will be filled to this template", - }, - - Update: { - Version: (x: string) => `Version: ${x}`, - IsLatest: "Latest version", - CheckUpdate: "Check Update", - IsChecking: "Checking update...", - FoundUpdate: (x: string) => `Found new version: ${x}`, - GoToUpdate: "Update", - }, - SendKey: "Send Key", - Theme: "Theme", - TightBorder: "Tight Border", - SendPreviewBubble: { - Title: "Send Preview Bubble", - SubTitle: "Preview markdown in bubble", - }, - Mask: { - Splash: { - Title: "Mask Splash Screen", - SubTitle: "Show a mask splash screen before starting new chat", - }, - Builtin: { - Title: "Hide Builtin Masks", - SubTitle: "Hide builtin masks in mask list", - }, - }, - Prompt: { - Disable: { - Title: "Disable auto-completion", - SubTitle: "Input / to trigger auto-completion", - }, - List: "Prompt List", - ListCount: (builtin: number, custom: number) => - `${builtin} built-in, ${custom} user-defined`, - Edit: "Edit", - Modal: { - Title: "Prompt List", - Add: "Add One", - Search: "Search Prompts", - }, - EditModal: { - Title: "Edit Prompt", - }, - }, - HistoryCount: { - Title: "Attached Messages Count", - SubTitle: "Number of sent messages attached per request", - }, - CompressThreshold: { - Title: "History Compression Threshold", - SubTitle: - "Will compress if uncompressed messages length exceeds the value", - }, - Token: { - Title: "API Key", - SubTitle: "Use your key to ignore access code limit", - Placeholder: "OpenAI API Key", - }, - Usage: { - Title: "Account Balance", - SubTitle(used: any, total: any) { - return `Used this month $${used}, subscription $${total}`; - }, - IsChecking: "Checking...", - Check: "Check", - NoAccess: "Enter API Key to check balance", - }, - AccessCode: { - Title: "Access Code", - SubTitle: "Access control enabled", - Placeholder: "Need Access Code", - }, - - CustomModel: { - Title: "Custom Models", - SubTitle: "Add extra model options, separate by comma", - }, - Model: "Model", - Temperature: { - Title: "Temperature", - SubTitle: "A larger value makes the more random output", - }, - TopP: { - Title: "Top P", - SubTitle: "Do not alter this value together with temperature", - }, - MaxTokens: { - Title: "Max Tokens", - SubTitle: "Maximum length of input tokens and generated tokens", - }, - PresencePenalty: { - Title: "Presence Penalty", - SubTitle: - "A larger value increases the likelihood to talk about new topics", - }, - FrequencyPenalty: { - Title: "Frequency Penalty", - SubTitle: - "A larger value decreasing the likelihood to repeat the same line", - }, - }, - Store: { - DefaultTopic: "New Conversation", - BotHello: "Hello! How can I assist you today?", - Error: "Something went wrong, please try again later.", - Prompt: { - History: (content: string) => - "This is a summary of the chat history as a recap: " + content, - Topic: - "Please generate a four to five word title summarizing our conversation without any lead-in, punctuation, quotation marks, periods, symbols, or additional text. Remove enclosing quotation marks.", - Summarize: - "Summarize the discussion briefly in 200 words or less to use as a prompt for future context.", - }, - }, - Copy: { - Success: "Copied to clipboard", - Failed: "Copy failed, please grant permission to access clipboard", - }, - Context: { - Toast: (x: any) => `With ${x} contextual prompts`, - Edit: "Current Chat Settings", - Add: "Add a Prompt", - Clear: "Context Cleared", - Revert: "Revert", - }, - Plugin: { - Name: "Plugin", - }, - Mask: { - Name: "Mask", - Page: { - Title: "Prompt Template", - SubTitle: (count: number) => `${count} prompt templates`, - Search: "Search Templates", - Create: "Create", - }, - Item: { - Info: (count: number) => `${count} prompts`, - Chat: "Chat", - View: "View", - Edit: "Edit", - Delete: "Delete", - DeleteConfirm: "Confirm to delete?", - }, - EditModal: { - Title: (readonly: boolean) => - `Edit Prompt Template ${readonly ? "(readonly)" : ""}`, - Download: "Download", - Clone: "Clone", - }, - Config: { - Avatar: "Bot Avatar", - Name: "Bot Name", - Sync: { - Title: "Use Global Config", - SubTitle: "Use global config in this chat", - Confirm: "Confirm to override custom config with global config?", - }, - HideContext: { - Title: "Hide Context Prompts", - SubTitle: "Do not show in-context prompts in chat", - }, - Share: { - Title: "Share This Mask", - SubTitle: "Generate a link to this mask", - Action: "Copy Link", - }, - }, - }, - NewChat: { - Return: "Return", - Skip: "Just Start", - Title: "Pick a Mask", - SubTitle: "Chat with the Soul behind the Mask", - More: "Find More", - NotShow: "Never Show Again", - ConfirmNoShow: "Confirm to disable?You can enable it in settings later.", - }, - - UI: { - Confirm: "Confirm", - Cancel: "Cancel", - Close: "Close", - Create: "Create", - Edit: "Edit", - }, - Exporter: { - Model: "Model", - Messages: "Messages", - Topic: "Topic", - Time: "Time", - }, -}; - -export default en; diff --git a/app/locales/es.ts b/app/locales/es.ts deleted file mode 100644 index 0971f05c5..000000000 --- a/app/locales/es.ts +++ /dev/null @@ -1,240 +0,0 @@ -import { SubmitKey } from "../store/config"; -import type { PartialLocaleType } from "./index"; - -const es: PartialLocaleType = { - WIP: "En construcción...", - Error: { - Unauthorized: - "Acceso no autorizado, por favor ingrese el código de acceso en la página de configuración.", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} mensajes`, - }, - Chat: { - SubTitle: (count: number) => `${count} mensajes con ChatGPT`, - Actions: { - ChatList: "Ir a la lista de chats", - CompressedHistory: "Historial de memoria comprimido", - Export: "Exportar todos los mensajes como Markdown", - Copy: "Copiar", - Stop: "Detener", - Retry: "Reintentar", - Delete: "Delete", - }, - Rename: "Renombrar chat", - Typing: "Escribiendo...", - Input: (submitKey: string) => { - var inputHints = `Escribe algo y presiona ${submitKey} para enviar`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ", presiona Shift + Enter para nueva línea"; - } - return inputHints; - }, - Send: "Enviar", - Config: { - Reset: "Reset to Default", - SaveAs: "Save as Mask", - }, - }, - Export: { - Title: "Todos los mensajes", - Copy: "Copiar todo", - Download: "Descargar", - MessageFromYou: "Mensaje de ti", - MessageFromChatGPT: "Mensaje de ChatGPT", - }, - Memory: { - Title: "Historial de memoria", - EmptyContent: "Aún no hay nada.", - Copy: "Copiar todo", - Send: "Send Memory", - Reset: "Reset Session", - ResetConfirm: - "Resetting will clear the current conversation history and historical memory. Are you sure you want to reset?", - }, - Home: { - NewChat: "Nuevo chat", - DeleteChat: "¿Confirmar eliminación de la conversación seleccionada?", - DeleteToast: "Chat Deleted", - Revert: "Revert", - }, - Settings: { - Title: "Configuración", - SubTitle: "Todas las configuraciones", - - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "Todos los idiomas", - }, - Avatar: "Avatar", - FontSize: { - Title: "Tamaño de fuente", - SubTitle: "Ajustar el tamaño de fuente del contenido del chat", - }, - Update: { - Version: (x: string) => `Versión: ${x}`, - IsLatest: "Última versión", - CheckUpdate: "Buscar actualizaciones", - IsChecking: "Buscando actualizaciones...", - FoundUpdate: (x: string) => `Se encontró una nueva versión: ${x}`, - GoToUpdate: "Actualizar", - }, - SendKey: "Tecla de envío", - Theme: "Tema", - TightBorder: "Borde ajustado", - SendPreviewBubble: { - Title: "Enviar burbuja de vista previa", - SubTitle: "Preview markdown in bubble", - }, - Mask: { - Splash: { - Title: "Mask Splash Screen", - SubTitle: "Show a mask splash screen before starting new chat", - }, - }, - Prompt: { - Disable: { - Title: "Desactivar autocompletado", - SubTitle: "Escribe / para activar el autocompletado", - }, - List: "Lista de autocompletado", - ListCount: (builtin: number, custom: number) => - `${builtin} incorporado, ${custom} definido por el usuario`, - Edit: "Editar", - Modal: { - Title: "Prompt List", - Add: "Add One", - Search: "Search Prompts", - }, - EditModal: { - Title: "Edit Prompt", - }, - }, - HistoryCount: { - Title: "Cantidad de mensajes adjuntos", - SubTitle: "Número de mensajes enviados adjuntos por solicitud", - }, - CompressThreshold: { - Title: "Umbral de compresión de historial", - SubTitle: - "Se comprimirán los mensajes si la longitud de los mensajes no comprimidos supera el valor", - }, - Token: { - Title: "Clave de API", - SubTitle: "Utiliza tu clave para ignorar el límite de código de acceso", - Placeholder: "Clave de la API de OpenAI", - }, - Usage: { - Title: "Saldo de la cuenta", - SubTitle(used: any, total: any) { - return `Usado $${used}, subscription $${total}`; - }, - IsChecking: "Comprobando...", - Check: "Comprobar de nuevo", - NoAccess: "Introduzca la clave API para comprobar el saldo", - }, - AccessCode: { - Title: "Código de acceso", - SubTitle: "Control de acceso habilitado", - Placeholder: "Necesita código de acceso", - }, - Model: "Modelo", - Temperature: { - Title: "Temperatura", - SubTitle: "Un valor mayor genera una salida más aleatoria", - }, - MaxTokens: { - Title: "Máximo de tokens", - SubTitle: "Longitud máxima de tokens de entrada y tokens generados", - }, - PresencePenalty: { - Title: "Penalización de presencia", - SubTitle: - "Un valor mayor aumenta la probabilidad de hablar sobre nuevos temas", - }, - FrequencyPenalty: { - Title: "Penalización de frecuencia", - SubTitle: - "Un valor mayor que disminuye la probabilidad de repetir la misma línea", - }, - }, - Store: { - DefaultTopic: "Nueva conversación", - BotHello: "¡Hola! ¿Cómo puedo ayudarte hoy?", - Error: "Algo salió mal, por favor intenta nuevamente más tarde.", - Prompt: { - History: (content: string) => - "Este es un resumen del historial del chat entre la IA y el usuario como recapitulación: " + - content, - Topic: - "Por favor, genera un título de cuatro a cinco palabras que resuma nuestra conversación sin ningún inicio, puntuación, comillas, puntos, símbolos o texto adicional. Elimina las comillas que lo envuelven.", - Summarize: - "Resuma nuestra discusión brevemente en 200 caracteres o menos para usarlo como un recordatorio para futuros contextos.", - }, - }, - Copy: { - Success: "Copiado al portapapeles", - Failed: - "La copia falló, por favor concede permiso para acceder al portapapeles", - }, - Context: { - Toast: (x: any) => `With ${x} contextual prompts`, - Edit: "Contextual and Memory Prompts", - Add: "Add One", - }, - Plugin: { - Name: "Plugin", - }, - Mask: { - Name: "Mask", - Page: { - Title: "Prompt Template", - SubTitle: (count: number) => `${count} prompt templates`, - Search: "Search Templates", - Create: "Create", - }, - Item: { - Info: (count: number) => `${count} prompts`, - Chat: "Chat", - View: "View", - Edit: "Edit", - Delete: "Delete", - DeleteConfirm: "Confirm to delete?", - }, - EditModal: { - Title: (readonly: boolean) => - `Edit Prompt Template ${readonly ? "(readonly)" : ""}`, - Download: "Download", - Clone: "Clone", - }, - Config: { - Avatar: "Bot Avatar", - Name: "Bot Name", - }, - }, - NewChat: { - Return: "Return", - Skip: "Skip", - Title: "Pick a Mask", - SubTitle: "Chat with the Soul behind the Mask", - More: "Find More", - NotShow: "Not Show Again", - ConfirmNoShow: "Confirm to disable?You can enable it in settings later.", - }, - - UI: { - Confirm: "Confirm", - Cancel: "Cancel", - Close: "Close", - Create: "Create", - Edit: "Edit", - }, - Exporter: { - Model: "Modelo", - Messages: "Mensajes", - Topic: "Tema", - Time: "Time", - }, -}; - -export default es; diff --git a/app/locales/fr.ts b/app/locales/fr.ts deleted file mode 100644 index 700ee0eaf..000000000 --- a/app/locales/fr.ts +++ /dev/null @@ -1,309 +0,0 @@ -import { SubmitKey } from "../store/config"; -import type { PartialLocaleType } from "./index"; - -const fr: PartialLocaleType = { - WIP: "Prochainement...", - Error: { - Unauthorized: - "Accès non autorisé, veuillez saisir le code d'accès dans la page des paramètres.", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} messages en total`, - }, - Chat: { - SubTitle: (count: number) => `${count} messages échangés avec ChatGPT`, - Actions: { - ChatList: "Aller à la liste de discussion", - CompressedHistory: "Mémoire d'historique compressée Prompt", - Export: "Exporter tous les messages en tant que Markdown", - Copy: "Copier", - Stop: "Arrêter", - Retry: "Réessayer", - Delete: "Supprimer", - Pin: "Épingler", - PinToastContent: "Épingler 2 messages à des messages contextuels", - PinToastAction: "Voir", - Edit: "Modifier", - }, - Commands: { - new: "Commencer une nouvelle conversation", - newm: "Démarrer une nouvelle conversation avec un assistant", - next: "Conversation suivante", - prev: "Conversation précédente", - clear: "Effacer le contexte", - del: "Supprimer la Conversation", - }, - InputActions: { - Stop: "Stop", - ToBottom: "Au dernier", - Theme: { - auto: "Auto", - light: "Thème clair", - dark: "Thème sombre", - }, - Prompt: "Instructions", - Masks: "Assistants", - Clear: "Effacer le contexte", - Settings: "Réglages", - }, - Rename: "Renommer la conversation", - Typing: "En train d'écrire…", - Input: (submitKey: string) => { - var inputHints = `Appuyez sur ${submitKey} pour envoyer`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ", Shift + Enter pour insérer un saut de ligne"; - } - return inputHints + ", / pour rechercher des prompts"; - }, - Send: "Envoyer", - Config: { - Reset: "Restaurer les paramètres par défaut", - SaveAs: "Enregistrer en tant que masque", - }, - }, - Export: { - Title: "Tous les messages", - Copy: "Tout sélectionner", - Download: "Télécharger", - MessageFromYou: "Message de votre part", - MessageFromChatGPT: "Message de ChatGPT", - }, - Memory: { - Title: "Prompt mémoire", - EmptyContent: "Rien encore.", - Send: "Envoyer la mémoire", - Copy: "Copier la mémoire", - Reset: "Réinitialiser la session", - ResetConfirm: - "La réinitialisation supprimera l'historique de la conversation actuelle ainsi que la mémoire de l'historique. Êtes-vous sûr de vouloir procéder à la réinitialisation?", - }, - Home: { - NewChat: "Nouvelle discussion", - DeleteChat: "Confirmer la suppression de la conversation sélectionnée ?", - DeleteToast: "Conversation supprimée", - Revert: "Revenir en arrière", - }, - Settings: { - Title: "Paramètres", - SubTitle: "Toutes les configurations", - Danger: { - Reset: { - Title: "Restaurer les paramètres", - SubTitle: "Restaurer les paramètres par défaut", - Action: "Reinitialiser", - Confirm: "Confirmer la réinitialisation des paramètres?", - }, - Clear: { - Title: "Supprimer toutes les données", - SubTitle: - "Effacer toutes les données, y compris les conversations et les paramètres", - Action: "Supprimer", - Confirm: "Confirmer la suppression de toutes les données?", - }, - }, - Lang: { - Name: "Language", // ATTENTION : si vous souhaitez ajouter une nouvelle traduction, ne traduisez pas cette valeur, laissez-la sous forme de `Language` - All: "Toutes les langues", - }, - - Avatar: "Avatar", - FontSize: { - Title: "Taille des polices", - SubTitle: "Ajuste la taille de police du contenu de la conversation", - }, - InputTemplate: { - Title: "Template", - SubTitle: "Le message le plus récent sera ajouté à ce template.", - }, - Update: { - Version: (x: string) => `Version : ${x}`, - IsLatest: "Dernière version", - CheckUpdate: "Vérifier la mise à jour", - IsChecking: "Vérification de la mise à jour...", - FoundUpdate: (x: string) => `Nouvelle version disponible : ${x}`, - GoToUpdate: "Mise à jour", - }, - SendKey: "Clé d'envoi", - Theme: "Thème", - TightBorder: "Bordure serrée", - SendPreviewBubble: { - Title: "Aperçu de l'envoi dans une bulle", - SubTitle: "Aperçu du Markdown dans une bulle", - }, - Mask: { - Splash: { - Title: "Écran de masque", - SubTitle: - "Afficher un écran de masque avant de démarrer une nouvelle discussion", - }, - Builtin: { - Title: "Masquer Les Assistants Intégrés", - SubTitle: "Masquer les assistants intégrés par défaut", - }, - }, - Prompt: { - Disable: { - Title: "Désactiver la saisie semi-automatique", - SubTitle: "Appuyez sur / pour activer la saisie semi-automatique", - }, - List: "Liste de prompts", - ListCount: (builtin: number, custom: number) => - `${builtin} intégré, ${custom} personnalisé`, - Edit: "Modifier", - Modal: { - Title: "Liste de prompts", - Add: "Ajouter un élément", - Search: "Rechercher des prompts", - }, - EditModal: { - Title: "Modifier le prompt", - }, - }, - HistoryCount: { - Title: "Nombre de messages joints", - SubTitle: "Nombre de messages envoyés attachés par demande", - }, - CompressThreshold: { - Title: "Seuil de compression de l'historique", - SubTitle: - "Comprimera si la longueur des messages non compressés dépasse cette valeur", - }, - Token: { - Title: "Clé API", - SubTitle: "Utilisez votre clé pour ignorer la limite du code d'accès", - Placeholder: "Clé OpenAI API", - }, - Usage: { - Title: "Solde du compte", - SubTitle(used: any, total: any) { - return `Épuisé ce mois-ci $${used}, abonnement $${total}`; - }, - IsChecking: "Vérification...", - Check: "Vérifier", - NoAccess: "Entrez la clé API pour vérifier le solde", - }, - AccessCode: { - Title: "Code d'accès", - SubTitle: "Contrôle d'accès activé", - Placeholder: "Code d'accès requis", - }, - Model: "Modèle", - Temperature: { - Title: "Température", - SubTitle: "Une valeur plus élevée rendra les réponses plus aléatoires", - }, - TopP: { - Title: "Top P", - SubTitle: - "Ne modifiez pas à moins que vous ne sachiez ce que vous faites", - }, - MaxTokens: { - Title: "Limite de Tokens", - SubTitle: "Longueur maximale des tokens d'entrée et des tokens générés", - }, - PresencePenalty: { - Title: "Pénalité de présence", - SubTitle: - "Une valeur plus élevée augmentera la probabilité d'introduire de nouveaux sujets", - }, - FrequencyPenalty: { - Title: "Pénalité de fréquence", - SubTitle: - "Une valeur plus élevée diminuant la probabilité de répéter la même ligne", - }, - }, - Store: { - DefaultTopic: "Nouvelle conversation", - BotHello: "Bonjour ! Comment puis-je vous aider aujourd'hui ?", - Error: "Quelque chose s'est mal passé, veuillez réessayer plus tard.", - Prompt: { - History: (content: string) => - "Ceci est un résumé de l'historique des discussions entre l'IA et l'utilisateur : " + - content, - Topic: - "Veuillez générer un titre de quatre à cinq mots résumant notre conversation sans introduction, ponctuation, guillemets, points, symboles ou texte supplémentaire. Supprimez les guillemets inclus.", - Summarize: - "Résumez brièvement nos discussions en 200 mots ou moins pour les utiliser comme prompt de contexte futur.", - }, - }, - Copy: { - Success: "Copié dans le presse-papiers", - Failed: - "La copie a échoué, veuillez accorder l'autorisation d'accès au presse-papiers", - }, - Context: { - Toast: (x: any) => `Avec ${x} contextes de prompts`, - Edit: "Contextes et mémoires de prompts", - Add: "Ajouter un prompt", - }, - Plugin: { - Name: "Extension", - }, - Mask: { - Name: "Masque", - Page: { - Title: "Modèle de prompt", - SubTitle: (count: number) => `${count} modèles de prompts`, - Search: "Rechercher des modèles", - Create: "Créer", - }, - Item: { - Info: (count: number) => `${count} prompts`, - Chat: "Discussion", - View: "Vue", - Edit: "Modifier", - Delete: "Supprimer", - DeleteConfirm: "Confirmer la suppression?", - }, - EditModal: { - Title: (readonly: boolean) => - `Modifier le modèle de prompt ${readonly ? "(en lecture seule)" : ""}`, - Download: "Télécharger", - Clone: "Dupliquer", - }, - Config: { - Avatar: "Avatar de lassistant", - Name: "Nom de lassistant", - Sync: { - Title: "Utiliser la configuration globale", - SubTitle: "Utiliser la configuration globale dans cette conversation", - Confirm: "Voulez-vous definir votre configuration personnalisée ?", - }, - HideContext: { - Title: "Masquer les invites contextuelles", - SubTitle: "Ne pas afficher les instructions contextuelles dans le chat", - }, - Share: { - Title: "Partager ce masque", - SubTitle: "Générer un lien vers ce masque", - Action: "Copier le lien", - }, - }, - }, - NewChat: { - Return: "Retour", - Skip: "Passer", - Title: "Choisir un assitant", - SubTitle: "Discutez avec l'âme derrière le masque", - More: "En savoir plus", - NotShow: "Ne pas afficher à nouveau", - ConfirmNoShow: - "Confirmez-vous vouloir désactiver cela? Vous pouvez le réactiver plus tard dans les paramètres.", - }, - - UI: { - Confirm: "Confirmer", - Cancel: "Annuler", - Close: "Fermer", - Create: "Créer", - Edit: "Éditer", - }, - Exporter: { - Model: "Modèle", - Messages: "Messages", - Topic: "Sujet", - Time: "Temps", - }, -}; - -export default fr; diff --git a/app/locales/index.ts b/app/locales/index.ts deleted file mode 100644 index 7ece45838..000000000 --- a/app/locales/index.ts +++ /dev/null @@ -1,118 +0,0 @@ -import cn from "./cn"; -import en from "./en"; -import tw from "./tw"; -import fr from "./fr"; -import es from "./es"; -import it from "./it"; -import tr from "./tr"; -import jp from "./jp"; -import de from "./de"; -import vi from "./vi"; -import ru from "./ru"; -import no from "./no"; -import cs from "./cs"; -import ko from "./ko"; -import ar from "./ar"; -import bn from "./bn"; -import { merge } from "../utils/merge"; - -import type { LocaleType } from "./cn"; -export type { LocaleType, PartialLocaleType } from "./cn"; - -const ALL_LANGS = { - cn, - en, - tw, - jp, - ko, - fr, - es, - it, - tr, - de, - vi, - ru, - cs, - no, - ar, - bn, -}; - -export type Lang = keyof typeof ALL_LANGS; - -export const AllLangs = Object.keys(ALL_LANGS) as Lang[]; - -export const ALL_LANG_OPTIONS: Record = { - cn: "简体中文", - en: "English", - tw: "繁體中文", - jp: "日本語", - ko: "한국어", - fr: "Français", - es: "Español", - it: "Italiano", - tr: "Türkçe", - de: "Deutsch", - vi: "Tiếng Việt", - ru: "Русский", - cs: "Čeština", - no: "Nynorsk", - ar: "العربية", - bn: "বাংলা", -}; - -const LANG_KEY = "lang"; -const DEFAULT_LANG = "en"; - -const fallbackLang = en; -const targetLang = ALL_LANGS[getLang()] as LocaleType; - -// if target lang missing some fields, it will use fallback lang string -merge(fallbackLang, targetLang); - -export default fallbackLang as LocaleType; - -function getItem(key: string) { - try { - return localStorage.getItem(key); - } catch { - return null; - } -} - -function setItem(key: string, value: string) { - try { - localStorage.setItem(key, value); - } catch {} -} - -function getLanguage() { - try { - return navigator.language.toLowerCase(); - } catch { - return DEFAULT_LANG; - } -} - -export function getLang(): Lang { - const savedLang = getItem(LANG_KEY); - - if (AllLangs.includes((savedLang ?? "") as Lang)) { - return savedLang as Lang; - } - - const lang = getLanguage(); - - for (const option of AllLangs) { - if (lang.includes(option)) { - return option; - } - } - - return DEFAULT_LANG; -} - -export function changeLang(lang: Lang) { - setItem(LANG_KEY, lang); - location.reload(); -} diff --git a/app/locales/it.ts b/app/locales/it.ts deleted file mode 100644 index acd3a7e93..000000000 --- a/app/locales/it.ts +++ /dev/null @@ -1,241 +0,0 @@ -import { SubmitKey } from "../store/config"; -import type { PartialLocaleType } from "./index"; - -const it: PartialLocaleType = { - WIP: "Work in progress...", - Error: { - Unauthorized: - "Accesso non autorizzato, inserire il codice di accesso nella pagina delle impostazioni.", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} messaggi`, - }, - Chat: { - SubTitle: (count: number) => `${count} messaggi con ChatGPT`, - Actions: { - ChatList: "Vai alla Chat List", - CompressedHistory: "Prompt di memoria della cronologia compressa", - Export: "Esportazione di tutti i messaggi come Markdown", - Copy: "Copia", - Stop: "Stop", - Retry: "Riprova", - Delete: "Delete", - }, - Rename: "Rinomina Chat", - Typing: "Typing…", - Input: (submitKey: string) => { - var inputHints = `Scrivi qualcosa e premi ${submitKey} per inviare`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ", premi Shift + Enter per andare a capo"; - } - return inputHints; - }, - Send: "Invia", - Config: { - Reset: "Reset to Default", - SaveAs: "Save as Mask", - }, - }, - Export: { - Title: "Tutti i messaggi", - Copy: "Copia tutto", - Download: "Scarica", - MessageFromYou: "Messaggio da te", - MessageFromChatGPT: "Messaggio da ChatGPT", - }, - Memory: { - Title: "Prompt di memoria", - EmptyContent: "Vuoto.", - Copy: "Copia tutto", - Send: "Send Memory", - Reset: "Reset Session", - ResetConfirm: - "Ripristinare cancellerà la conversazione corrente e la cronologia di memoria. Sei sicuro che vuoi riavviare?", - }, - Home: { - NewChat: "Nuova Chat", - DeleteChat: "Confermare la cancellazione della conversazione selezionata?", - DeleteToast: "Chat Cancellata", - Revert: "Revert", - }, - Settings: { - Title: "Impostazioni", - SubTitle: "Tutte le impostazioni", - - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "Tutte le lingue", - }, - Avatar: "Avatar", - FontSize: { - Title: "Dimensione carattere", - SubTitle: "Regolare la dimensione dei caratteri del contenuto della chat", - }, - Update: { - Version: (x: string) => `Versione: ${x}`, - IsLatest: "Ultima versione", - CheckUpdate: "Controlla aggiornamenti", - IsChecking: "Sto controllando gli aggiornamenti...", - FoundUpdate: (x: string) => `Trovata nuova versione: ${x}`, - GoToUpdate: "Aggiorna", - }, - SendKey: "Tasto invia", - Theme: "Tema", - TightBorder: "Schermo intero", - SendPreviewBubble: { - Title: "Anteprima di digitazione", - SubTitle: "Preview markdown in bubble", - }, - Mask: { - Splash: { - Title: "Mask Splash Screen", - SubTitle: "Show a mask splash screen before starting new chat", - }, - }, - Prompt: { - Disable: { - Title: "Disabilita l'auto completamento", - SubTitle: "Input / per attivare il completamento automatico", - }, - List: "Elenco dei suggerimenti", - ListCount: (builtin: number, custom: number) => - `${builtin} built-in, ${custom} user-defined`, - Edit: "Modifica", - Modal: { - Title: "Prompt List", - Add: "Add One", - Search: "Search Prompts", - }, - EditModal: { - Title: "Edit Prompt", - }, - }, - HistoryCount: { - Title: "Conteggio dei messaggi allegati", - SubTitle: "Numero di messaggi inviati allegati per richiesta", - }, - CompressThreshold: { - Title: "Soglia di compressione della cronologia", - SubTitle: - "Comprimerà se la lunghezza dei messaggi non compressi supera il valore", - }, - Token: { - Title: "API Key", - SubTitle: - "Utilizzare la chiave per ignorare il limite del codice di accesso", - Placeholder: "OpenAI API Key", - }, - Usage: { - Title: "Bilancio Account", - SubTitle(used: any, total: any) { - return `Attualmente usato in questo mese $${used}, soglia massima $${total}`; - }, - IsChecking: "Controllando...", - Check: "Controlla ancora", - NoAccess: "Inserire la chiave API per controllare il saldo", - }, - AccessCode: { - Title: "Codice d'accesso", - SubTitle: "Controllo d'accesso abilitato", - Placeholder: "Inserisci il codice d'accesso", - }, - Model: "Modello GPT", - Temperature: { - Title: "Temperature", - SubTitle: "Un valore maggiore rende l'output più casuale", - }, - MaxTokens: { - Title: "Token massimi", - SubTitle: "Lunghezza massima dei token in ingresso e dei token generati", - }, - PresencePenalty: { - Title: "Penalità di presenza", - SubTitle: - "Un valore maggiore aumenta la probabilità di parlare di nuovi argomenti", - }, - FrequencyPenalty: { - Title: "Penalità di frequenza", - SubTitle: - "Un valore maggiore che diminuisce la probabilità di ripetere la stessa riga", - }, - }, - Store: { - DefaultTopic: "Nuova conversazione", - BotHello: "Ciao, come posso aiutarti oggi?", - Error: "Qualcosa è andato storto, riprova più tardi.", - Prompt: { - History: (content: string) => - "Questo è un riassunto della cronologia delle chat tra l'IA e l'utente:" + - content, - Topic: - "Si prega di generare un titolo di quattro o cinque parole che riassuma la nostra conversazione senza alcuna traccia, punteggiatura, virgolette, punti, simboli o testo aggiuntivo. Rimuovere le virgolette", - Summarize: - "Riassumi brevemente la nostra discussione in 200 caratteri o meno per usarla come spunto per una futura conversazione.", - }, - }, - Copy: { - Success: "Copiato sugli appunti", - Failed: - "Copia fallita, concedere l'autorizzazione all'accesso agli appunti", - }, - Context: { - Toast: (x: any) => `Con ${x} prompts contestuali`, - Edit: "Prompt contestuali e di memoria", - Add: "Aggiungi altro", - }, - Plugin: { - Name: "Plugin", - }, - Mask: { - Name: "Mask", - Page: { - Title: "Prompt Template", - SubTitle: (count: number) => `${count} prompt templates`, - Search: "Search Templates", - Create: "Create", - }, - Item: { - Info: (count: number) => `${count} prompts`, - Chat: "Chat", - View: "View", - Edit: "Edit", - Delete: "Delete", - DeleteConfirm: "Confirm to delete?", - }, - EditModal: { - Title: (readonly: boolean) => - `Edit Prompt Template ${readonly ? "(readonly)" : ""}`, - Download: "Download", - Clone: "Clone", - }, - Config: { - Avatar: "Bot Avatar", - Name: "Bot Name", - }, - }, - NewChat: { - Return: "Return", - Skip: "Skip", - Title: "Pick a Mask", - SubTitle: "Chat with the Soul behind the Mask", - More: "Find More", - NotShow: "Not Show Again", - ConfirmNoShow: "Confirm to disable?You can enable it in settings later.", - }, - - UI: { - Confirm: "Confirm", - Cancel: "Cancel", - Close: "Close", - Create: "Create", - Edit: "Edit", - }, - Exporter: { - Model: "Modello", - Messages: "Messaggi", - Topic: "Argomento", - Time: "Tempo", - }, -}; - -export default it; diff --git a/app/locales/jp.ts b/app/locales/jp.ts deleted file mode 100644 index 090a428fa..000000000 --- a/app/locales/jp.ts +++ /dev/null @@ -1,264 +0,0 @@ -import { SubmitKey } from "../store/config"; -import type { PartialLocaleType } from "./index"; - -const jp: PartialLocaleType = { - WIP: "この機能は開発中です", - Error: { - Unauthorized: - "現在は未承認状態です。左下の設定ボタンをクリックし、アクセスパスワードかOpenAIのAPIキーを入力してください。", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} 通のチャット`, - }, - Chat: { - SubTitle: (count: number) => `ChatGPTとの ${count} 通のチャット`, - Actions: { - ChatList: "メッセージリストを表示", - CompressedHistory: "圧縮された履歴プロンプトを表示", - Export: "チャット履歴をエクスポート", - Copy: "コピー", - Stop: "停止", - Retry: "リトライ", - Delete: "削除", - }, - Rename: "チャットの名前を変更", - Typing: "入力中…", - Input: (submitKey: string) => { - var inputHints = `${submitKey} で送信`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ",Shift + Enter で改行"; - } - return inputHints + ",/ で自動補完をトリガー"; - }, - Send: "送信", - Config: { - Reset: "リセット", - SaveAs: "另存为面具", - }, - }, - Export: { - Title: "チャット履歴をMarkdown形式でエクスポート", - Copy: "すべてコピー", - Download: "ファイルをダウンロード", - MessageFromYou: "あなたからのメッセージ", - MessageFromChatGPT: "ChatGPTからのメッセージ", - }, - Memory: { - Title: "履歴メモリ", - EmptyContent: "まだ記憶されていません", - Send: "メモリを送信", - Copy: "メモリをコピー", - Reset: "チャットをリセット", - ResetConfirm: - "リセット後、現在のチャット履歴と過去のメモリがクリアされます。リセットしてもよろしいですか?", - }, - Home: { - NewChat: "新しいチャット", - DeleteChat: "選択したチャットを削除してもよろしいですか?", - DeleteToast: "チャットが削除されました", - Revert: "元に戻す", - }, - Settings: { - Title: "設定", - SubTitle: "設定オプション", - Danger: { - Reset: { - Title: "設定をリセット", - SubTitle: "すべての設定項目をデフォルトにリセットします", - Action: "今すぐリセットする", - Confirm: "すべての設定項目をリセットしてもよろしいですか?", - }, - Clear: { - Title: "データを消去", - SubTitle: "すべてのチャット履歴と設定を消去します", - Action: "今すぐ消去する", - Confirm: "すべてのチャット履歴と設定を消去しますか?", - }, - }, - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "全ての言語", - }, - Avatar: "アバター", - FontSize: { - Title: "フォントサイズ", - SubTitle: "チャット内容のフォントサイズ", - }, - InputTemplate: { - Title: "入力の前処理", - SubTitle: "新規入力がこのテンプレートに埋め込まれます", - }, - Update: { - Version: (x: string) => `現在のバージョン:${x}`, - IsLatest: "最新バージョンです", - CheckUpdate: "アップデートを確認", - IsChecking: "アップデートを確認しています...", - FoundUpdate: (x: string) => `新しいバージョンが見つかりました:${x}`, - GoToUpdate: "更新する", - }, - SendKey: "送信キー", - Theme: "テーマ", - TightBorder: "ボーダーレスモード", - SendPreviewBubble: { - Title: "プレビューバブルの送信", - SubTitle: "プレビューバブルでマークダウンコンテンツをプレビュー", - }, - Mask: { - Splash: { - Title: "キャラクターページ", - SubTitle: "新規チャット作成時にキャラクターページを表示する", - }, - }, - Prompt: { - Disable: { - Title: "プロンプトの自動補完を無効にする", - SubTitle: - "入力フィールドの先頭に / を入力すると、自動補完がトリガーされます。", - }, - List: "カスタムプロンプトリスト", - ListCount: (builtin: number, custom: number) => - `組み込み ${builtin} 件、ユーザー定義 ${custom} 件`, - Edit: "編集", - Modal: { - Title: "プロンプトリスト", - Add: "新規追加", - Search: "プロンプトワード検索", - }, - EditModal: { - Title: "編集", - }, - }, - HistoryCount: { - Title: "履歴メッセージ数を添付", - SubTitle: "リクエストごとに添付する履歴メッセージ数", - }, - CompressThreshold: { - Title: "履歴メッセージの長さ圧縮しきい値", - SubTitle: - "圧縮されていない履歴メッセージがこの値を超えた場合、圧縮が行われます。", - }, - Token: { - Title: "APIキー", - SubTitle: "自分のキーを使用してパスワードアクセス制限を迂回する", - Placeholder: "OpenAI APIキー", - }, - Usage: { - Title: "残高照会", - SubTitle(used: any, total: any) { - return `今月は $${used} を使用しました。総額は $${total} です。`; - }, - IsChecking: "確認中...", - Check: "再確認", - NoAccess: "APIキーまたはアクセスパスワードを入力して残高を表示", - }, - AccessCode: { - Title: "アクセスパスワード", - SubTitle: "暗号化アクセスが有効になっています", - Placeholder: "アクセスパスワードを入力してください", - }, - Model: "モデル (model)", - Temperature: { - Title: "ランダム性 (temperature)", - SubTitle: - "値が大きいほど、回答がランダムになります。1以上の値には文字化けが含まれる可能性があります。", - }, - MaxTokens: { - Title: "シングルレスポンス制限 (max_tokens)", - SubTitle: "1回のインタラクションで使用される最大トークン数", - }, - PresencePenalty: { - Title: "トピックの新鮮度 (presence_penalty)", - SubTitle: "値が大きいほど、新しいトピックへの展開が可能になります。", - }, - FrequencyPenalty: { - Title: "話題の頻度 (frequency_penalty)", - SubTitle: "値が大きいほど、重複語を低減する可能性が高くなります", - }, - }, - Store: { - DefaultTopic: "新しいチャット", - BotHello: "何かお手伝いできることはありますか", - Error: "エラーが発生しました。しばらくしてからやり直してください。", - Prompt: { - History: (content: string) => - "これは、AI とユーザの過去のチャットを要約した前提となるストーリーです:" + - content, - Topic: - "4~5文字でこの文章の簡潔な主題を返してください。説明、句読点、感嘆詞、余分なテキストは無しで。もし主題がない場合は、「おしゃべり」を返してください", - Summarize: - "あなたとユーザの会話を簡潔にまとめて、後続のコンテキストプロンプトとして使ってください。200字以内に抑えてください。", - }, - }, - Copy: { - Success: "クリップボードに書き込みました", - Failed: "コピーに失敗しました。クリップボード許可を与えてください。", - }, - Context: { - Toast: (x: any) => `キャラクターが ${x} 件設定されました`, - Edit: "キャラクタープリセットとモデル設定", - Add: "追加", - }, - Plugin: { Name: "プラグイン" }, - Mask: { - Name: "キャラクタープリセット", - Page: { - Title: "キャラクタープリセット", - SubTitle: (count: number) => `${count} 件見つかりました。`, - Search: "検索", - Create: "新規", - }, - Item: { - Info: (count: number) => `包含 ${count} 条预设对话`, - Chat: "会話", - View: "詳細", - Edit: "編集", - Delete: "削除", - DeleteConfirm: "本当に削除しますか?", - }, - EditModal: { - Title: (readonly: boolean) => - `キャラクタープリセットを編集 ${readonly ? "(読み取り専用)" : ""}`, - Download: "ダウンロード", - Clone: "複製", - }, - Config: { - Avatar: "キャラクターのアイコン", - Name: "キャラクターの名前", - Sync: { - Title: "グローバル設定を利用する", - SubTitle: "このチャットでグローバル設定を利用します。", - Confirm: - "カスタム設定を上書きしてグローバル設定を使用します、よろしいですか?", - }, - HideContext: { - Title: "キャラクター設定を表示しない", - SubTitle: "チャット画面でのキャラクター設定を非表示にします。", - }, - }, - }, - NewChat: { - Return: "戻る", - Skip: "スキップ", - Title: "キャラクター", - SubTitle: "さあ、AIにキャラクターを設定して会話を始めてみましょう", - More: "もっと探す", - NotShow: "今後は表示しない", - ConfirmNoShow: "いつでも設定から有効化できます。", - }, - - UI: { - Confirm: "確認", - Cancel: "キャンセル", - Close: "閉じる", - Create: "新規", - Edit: "編集", - }, - Exporter: { - Model: "モデル", - Messages: "メッセージ", - Topic: "トピック", - Time: "時間", - }, -}; - -export default jp; diff --git a/app/locales/ko.ts b/app/locales/ko.ts deleted file mode 100644 index 6f5ec7a9a..000000000 --- a/app/locales/ko.ts +++ /dev/null @@ -1,236 +0,0 @@ -import { SubmitKey } from "../store/config"; - -import type { PartialLocaleType } from "./index"; - -const ko: PartialLocaleType = { - WIP: "곧 출시 예정...", - Error: { - Unauthorized: "권한이 없습니다. 설정 페이지에서 액세스 코드를 입력하세요.", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count}개의 메시지`, - }, - Chat: { - SubTitle: (count: number) => `ChatGPT와의 ${count}개의 메시지`, - Actions: { - ChatList: "채팅 목록으로 이동", - CompressedHistory: "압축된 기억력 메모리 프롬프트", - Export: "모든 메시지를 Markdown으로 내보내기", - Copy: "복사", - Stop: "중지", - Retry: "다시 시도", - Delete: "삭제", - }, - Rename: "채팅 이름 변경", - Typing: "입력 중...", - Input: (submitKey: string) => { - var inputHints = `${submitKey}를 눌러 보내기`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ", Shift + Enter로 줄 바꿈"; - } - return inputHints + ", 프롬프트 검색을 위해 / 입력"; - }, - Send: "보내기", - Config: { - Reset: "기본값으로 재설정", - SaveAs: "마스크로 저장", - }, - }, - Export: { - Title: "모든 메시지", - Copy: "모두 복사", - Download: "다운로드", - MessageFromYou: "나의 메시지", - MessageFromChatGPT: "ChatGPT의 메시지", - }, - Memory: { - Title: "기억 프롬프트", - EmptyContent: "아직 내용이 없습니다.", - Send: "기억 보내기", - Copy: "기억 복사", - Reset: "세션 재설정", - ResetConfirm: - "재설정하면 현재 대화 기록과 기억력이 삭제됩니다. 정말 재설정하시겠습니까?", - }, - Home: { - NewChat: "새로운 채팅", - DeleteChat: "선택한 대화를 삭제하시겠습니까?", - DeleteToast: "채팅이 삭제되었습니다.", - Revert: "되돌리기", - }, - Settings: { - Title: "설정", - SubTitle: "모든 설정", - - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "All Languages", - }, - Avatar: "아바타", - FontSize: { - Title: "글꼴 크기", - SubTitle: "채팅 내용의 글꼴 크기 조정", - }, - Update: { - Version: (x: string) => `버전: ${x}`, - IsLatest: "최신 버전", - CheckUpdate: "업데이트 확인", - IsChecking: "업데이트 확인 중...", - FoundUpdate: (x: string) => `새 버전 발견: ${x}`, - GoToUpdate: "업데이트", - }, - SendKey: "전송 키", - Theme: "테마", - TightBorder: "조밀한 테두리", - SendPreviewBubble: { - Title: "미리 보기 버블 전송", - SubTitle: "버블에서 마크다운 미리 보기", - }, - Mask: { - Splash: { - Title: "마스크 시작 화면", - SubTitle: "새로운 채팅 시작 전에 마스크 시작 화면 표시", - }, - }, - Prompt: { - Disable: { - Title: "자동 완성 비활성화", - SubTitle: "자동 완성을 활성화하려면 /를 입력하세요.", - }, - List: "프롬프트 목록", - ListCount: (builtin: number, custom: number) => - `내장 ${builtin}개, 사용자 정의 ${custom}개`, - Edit: "편집", - Modal: { - Title: "프롬프트 목록", - Add: "추가", - Search: "프롬프트 검색", - }, - EditModal: { - Title: "프롬프트 편집", - }, - }, - HistoryCount: { - Title: "첨부된 메시지 수", - SubTitle: "요청당 첨부된 전송된 메시지 수", - }, - CompressThreshold: { - Title: "기록 압축 임계값", - SubTitle: "미압축 메시지 길이가 임계값을 초과하면 압축됨", - }, - Token: { - Title: "API 키", - SubTitle: "액세스 코드 제한을 무시하기 위해 키 사용", - Placeholder: "OpenAI API 키", - }, - Usage: { - Title: "계정 잔액", - SubTitle(used: any, total: any) { - return `이번 달 사용액 ${used}, 구독액 ${total}`; - }, - IsChecking: "확인 중...", - Check: "확인", - NoAccess: "잔액 확인을 위해 API 키를 입력하세요.", - }, - AccessCode: { - Title: "액세스 코드", - SubTitle: "액세스 제어가 활성화됨", - Placeholder: "액세스 코드 입력", - }, - Model: "모델", - Temperature: { - Title: "온도 (temperature)", - SubTitle: "값이 클수록 더 무작위한 출력이 생성됩니다.", - }, - MaxTokens: { - Title: "최대 토큰 수 (max_tokens)", - SubTitle: "입력 토큰과 생성된 토큰의 최대 길이", - }, - PresencePenalty: { - Title: "존재 페널티 (presence_penalty)", - SubTitle: "값이 클수록 새로운 주제에 대해 대화할 가능성이 높아집니다.", - }, - FrequencyPenalty: { - Title: "빈도 페널티(frequency penalty)", - SubTitle: "값이 클수록 같은 줄이 반복될 가능성이 줄어듭니다.", - }, - }, - Store: { - DefaultTopic: "새 대화", - BotHello: "안녕하세요! 오늘 도움이 필요하신가요?", - Error: "문제가 발생했습니다. 나중에 다시 시도해주세요.", - Prompt: { - History: (content: string) => - "이것은 AI와 사용자 간의 대화 기록을 요약한 내용입니다: " + content, - Topic: - "다음과 같이 대화 내용을 요약하는 4~5단어 제목을 생성해주세요. 따옴표, 구두점, 인용부호, 기호 또는 추가 텍스트를 제거하십시오. 따옴표로 감싸진 부분을 제거하십시오.", - Summarize: - "200단어 이내로 저희 토론을 간략히 요약하여 앞으로의 맥락으로 사용할 수 있는 프롬프트로 만들어주세요.", - }, - }, - Copy: { - Success: "클립보드에 복사되었습니다.", - Failed: "복사 실패, 클립보드 접근 권한을 허용해주세요.", - }, - Context: { - Toast: (x: any) => `컨텍스트 프롬프트 ${x}개 사용`, - Edit: "컨텍스트 및 메모리 프롬프트", - Add: "프롬프트 추가", - }, - Plugin: { - Name: "플러그인", - }, - Mask: { - Name: "마스크", - Page: { - Title: "프롬프트 템플릿", - SubTitle: (count: number) => `${count}개의 프롬프트 템플릿`, - Search: "템플릿 검색", - Create: "생성", - }, - Item: { - Info: (count: number) => `${count}개의 프롬프롬프트`, - Chat: "채팅", - View: "보기", - Edit: "편집", - Delete: "삭제", - DeleteConfirm: "삭제하시겠습니까?", - }, - EditModal: { - Title: (readonly: boolean) => - `프롬프트 템플릿 편집 ${readonly ? "(읽기 전용)" : ""}`, - Download: "다운로드", - Clone: "복제", - }, - Config: { - Avatar: "봇 아바타", - Name: "봇 이름", - }, - }, - NewChat: { - Return: "돌아가기", - Skip: "건너뛰기", - Title: "마스크 선택", - SubTitle: "마스크 뒤의 영혼과 대화하세요", - More: "더 보기", - NotShow: "다시 표시하지 않음", - ConfirmNoShow: - "비활성화하시겠습니까? 나중에 설정에서 다시 활성화할 수 있습니다.", - }, - - UI: { - Confirm: "확인", - Cancel: "취소", - Close: "닫기", - Create: "생성", - Edit: "편집", - }, - Exporter: { - Model: "모델", - Messages: "메시지", - Topic: "주제", - Time: "시간", - }, -}; - -export default ko; diff --git a/app/locales/no.ts b/app/locales/no.ts deleted file mode 100644 index b296bd5cf..000000000 --- a/app/locales/no.ts +++ /dev/null @@ -1,164 +0,0 @@ -import { SubmitKey } from "../store/config"; -import type { PartialLocaleType } from "./index"; - -const no: PartialLocaleType = { - WIP: "Arbeid pågår ...", - Error: { - Unauthorized: "Du har ikke tilgang. Vennlig oppgi tildelt adgangskode.", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} meldinger`, - }, - Chat: { - SubTitle: (count: number) => `${count} meldinger med ChatGPT`, - Actions: { - ChatList: "Gå til chatlisten", - CompressedHistory: "Komprimert historikk for instrukser", - Export: "Eksporter alle meldinger i markdown-format", - Copy: "Kopier", - Stop: "Stopp", - Retry: "Prøv igjen", - Delete: "Slett", - }, - Rename: "Gi nytt navn", - Typing: "Skriver …", - Input: (submitKey: string) => { - var inputHints = `${submitKey} for å sende`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ", Shift + Enter for å omgi"; - } - return inputHints + ", / for å søke instrukser"; - }, - Send: "Send", - }, - Export: { - Title: "Alle meldinger", - Copy: "Kopiere alle", - Download: "Last ned", - MessageFromYou: "Melding fra deg", - MessageFromChatGPT: "Melding fra ChatGPT", - }, - Memory: { - Title: "Minneinstruks", - EmptyContent: "Ingen sålant.", - Send: "Send minne", - Copy: "Kopiere minne", - Reset: "Nulstill sesjon", - ResetConfirm: - "Om du nillstiller vil du slette hele historikken. Er du sikker på at du vil nullstille?", - }, - Home: { - NewChat: "Ny chat", - DeleteChat: "Bekreft for å slette det valgte dialogen", - DeleteToast: "Samtale slettet", - Revert: "Tilbakestill", - }, - Settings: { - Title: "Innstillinger", - SubTitle: "Alle innstillinger", - - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - }, - Avatar: "Avatar", - FontSize: { - Title: "Fontstørrelsen", - SubTitle: "Juster fontstørrelsen for samtaleinnholdet.", - }, - Update: { - Version: (x: string) => `Versjon: ${x}`, - IsLatest: "Siste versjon", - CheckUpdate: "Se etter oppdatering", - IsChecking: "Ser etter oppdatering ...", - FoundUpdate: (x: string) => `Fant ny versjon: ${x}`, - GoToUpdate: "Oppdater", - }, - SendKey: "Send nøkkel", - Theme: "Tema", - TightBorder: "Stram innramming", - Prompt: { - Disable: { - Title: "Skru av autofullfør", - SubTitle: "Skriv / for å trigge autofullfør", - }, - List: "Instruksliste", - ListCount: (builtin: number, custom: number) => - `${builtin} innebygde, ${custom} brukerdefinerte`, - Edit: "Endre", - Modal: { - Title: "Instruksliste", - Add: "Legg til", - Search: "Søk instrukser", - }, - }, - HistoryCount: { - Title: "Tall på tilhørende meldinger", - SubTitle: "Antall sendte meldinger tilknyttet hver spørring", - }, - CompressThreshold: { - Title: "Terskeverdi for komprimering av historikk", - SubTitle: - "Komprimer dersom ikke-komprimert lengde på meldinger overskrider denne verdien", - }, - Token: { - Title: "API Key", - SubTitle: - "Bruk din egen API-nøkkel for å ignorere tilgangskoden begrensning", - Placeholder: "OpenAI API-nøkkel", - }, - Usage: { - Title: "Saldo for konto", - SubTitle(used: any, total: any) { - return `Brukt denne måneden $${used}, abonnement $${total}`; - }, - IsChecking: "Sjekker ...", - Check: "Sjekk", - NoAccess: "Skriv inn API-nøkkelen for å sjekke saldo", - }, - AccessCode: { - Title: "Tilgangskode", - SubTitle: "Tilgangskontroll på", - Placeholder: "Trenger tilgangskode", - }, - Model: "Model", - Temperature: { - Title: "Temperatur", - SubTitle: "Høyere verdi gir mer kreative svar", - }, - MaxTokens: { - Title: "Maks tokens", - SubTitle: "Maksimum lengde på tokens for instrukser og svar", - }, - }, - Store: { - DefaultTopic: "Ny samtale", - BotHello: "Hei! Hva kan jeg hjelpe deg med i dag?", - Error: "Noe gikk galt, vennligst prøv igjen senere.", - Prompt: { - History: (content: string) => - "Dette er et sammendrag av chatthistorikken mellom AI-en og brukeren som en oppsummering: " + - content, - Topic: - "Vennligst lag en fire til fem ords tittel som oppsummerer samtalen vår uten innledning, punktsetting, anførselstegn, punktum, symboler eller tillegg tekst. Fjern innrammende anførselstegn.", - Summarize: - "Oppsummer diskusjonen vår kort i 200 ord eller mindre for å bruke som en oppfordring til fremtidig sammenheng.", - }, - }, - Copy: { - Success: "Kopiert til utklippstavle", - Failed: "Kopiering feilet. Vennligst gi tilgang til utklippstavlen.", - }, - Context: { - Toast: (x: any) => `Med ${x} kontekstuelle instrukser`, - Edit: "Kontekstuelle -og minneinstrukser", - Add: "Legg til", - }, - Exporter: { - Model: "Model", - Messages: "Meldingar", - Topic: "Emne", - Time: "Tid", - }, -}; - -export default no; diff --git a/app/locales/ru.ts b/app/locales/ru.ts deleted file mode 100644 index 06c945859..000000000 --- a/app/locales/ru.ts +++ /dev/null @@ -1,244 +0,0 @@ -import { SubmitKey } from "../store/config"; -import type { PartialLocaleType } from "./index"; - -const ru: PartialLocaleType = { - WIP: "Скоро...", - Error: { - Unauthorized: - "Несанкционированный доступ. Пожалуйста, введите код доступа на странице настроек.", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} сообщений`, - }, - Chat: { - SubTitle: (count: number) => `${count} сообщений с ChatGPT`, - Actions: { - ChatList: "Перейти к списку чатов", - CompressedHistory: "Сжатая история памяти", - Export: "Экспортировать все сообщения в формате Markdown", - Copy: "Копировать", - Stop: "Остановить", - Retry: "Повторить", - Delete: "Удалить", - }, - Rename: "Переименовать чат", - Typing: "Печатает…", - Input: (submitKey: string) => { - var inputHints = `${submitKey} для отправки сообщения`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ", Shift + Enter для переноса строки"; - } - return inputHints + ", / для поиска подсказок"; - }, - Send: "Отправить", - Config: { - Reset: "Сбросить настройки", - SaveAs: "Сохранить как маску", - }, - }, - Export: { - Title: "Все сообщения", - Copy: "Копировать все", - Download: "Скачать", - MessageFromYou: "Сообщение от вас", - MessageFromChatGPT: "Сообщение от ChatGPT", - }, - Memory: { - Title: "Память", - EmptyContent: "Пусто.", - Send: "Отправить память", - Copy: "Копировать память", - Reset: "Сбросить сессию", - ResetConfirm: - "При сбросе текущая история переписки и историческая память будут удалены. Вы уверены, что хотите сбросить?", - }, - Home: { - NewChat: "Новый чат", - DeleteChat: "Вы действительно хотите удалить выбранный разговор?", - DeleteToast: "Чат удален", - Revert: "Отмена", - }, - Settings: { - Title: "Настройки", - SubTitle: "Все настройки", - - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "Все языки", - }, - Avatar: "Аватар", - FontSize: { - Title: "Размер шрифта", - SubTitle: "Настроить размер шрифта контента чата", - }, - Update: { - Version: (x: string) => `Версия: ${x}`, - IsLatest: "Последняя версия", - CheckUpdate: "Проверить обновление", - IsChecking: "Проверка обновления...", - FoundUpdate: (x: string) => `Найдена новая версия: ${x}`, - GoToUpdate: "Обновить", - }, - SendKey: "Клавиша отправки", - Theme: "Тема", - TightBorder: "Узкая граница", - SendPreviewBubble: { - Title: "Отправить предпросмотр", - SubTitle: "Предварительный просмотр markdown в пузыре", - }, - Mask: { - Splash: { - Title: "Экран заставки маски", - SubTitle: "Показывать экран заставки маски перед началом нового чата", - }, - }, - Prompt: { - Disable: { - Title: "Отключить автозаполнение", - SubTitle: "Ввод / для запуска автозаполнения", - }, - List: "Список подсказок", - ListCount: (builtin: number, custom: number) => - `${builtin} встроенных, ${custom} пользовательских`, - Edit: "Редактировать", - Modal: { - Title: "Список подсказок", - Add: "Добавить", - Search: "Поиск подсказок", - }, - EditModal: { - Title: "Редактировать подсказку", - }, - }, - HistoryCount: { - Title: "Количество прикрепляемых сообщений", - SubTitle: - "Количество отправляемых сообщений, прикрепляемых к каждому запросу", - }, - CompressThreshold: { - Title: "Порог сжатия истории", - SubTitle: - "Будет сжимать, если длина несжатых сообщений превышает указанное значение", - }, - Token: { - Title: "API ключ", - SubTitle: "Используйте свой ключ, чтобы игнорировать лимит доступа", - Placeholder: "API ключ OpenAI", - }, - Usage: { - Title: "Баланс аккаунта", - SubTitle(used: any, total: any) { - return `Использовано в этом месяце $${used}, подписка $${total}`; - }, - IsChecking: "Проверка...", - Check: "Проверить", - NoAccess: "Введите API ключ, чтобы проверить баланс", - }, - AccessCode: { - Title: "Код доступа", - SubTitle: "Контроль доступа включен", - Placeholder: "Требуется код доступа", - }, - Model: "Модель", - Temperature: { - Title: "Температура", - SubTitle: "Чем выше значение, тем более случайный вывод", - }, - MaxTokens: { - Title: "Максимальное количество токенов", - SubTitle: "Максимальная длина вводных и генерируемых токенов", - }, - PresencePenalty: { - Title: "Штраф за повторения", - SubTitle: - "Чем выше значение, тем больше вероятность общения на новые темы", - }, - FrequencyPenalty: { - Title: "Штраф за частоту", - SubTitle: - "Большее значение снижает вероятность повторения одной и той же строки", - }, - }, - Store: { - DefaultTopic: "Новый разговор", - BotHello: "Здравствуйте! Как я могу вам помочь сегодня?", - Error: "Что-то пошло не так. Пожалуйста, попробуйте еще раз позже.", - Prompt: { - History: (content: string) => - "Это краткое содержание истории чата между ИИ и пользователем: " + - content, - Topic: - "Пожалуйста, создайте заголовок из четырех или пяти слов, который кратко описывает нашу беседу, без введения, знаков пунктуации, кавычек, точек, символов или дополнительного текста. Удалите кавычки.", - Summarize: - "Кратко изложите нашу дискуссию в 200 словах или менее для использования в будущем контексте.", - }, - }, - Copy: { - Success: "Скопировано в буфер обмена", - Failed: - "Не удалось скопировать, пожалуйста, предоставьте разрешение на доступ к буферу обмена", - }, - Context: { - Toast: (x: any) => `С ${x} контекстными подсказками`, - Edit: "Контекстные и памятные подсказки", - Add: "Добавить подсказку", - }, - Plugin: { - Name: "Плагин", - }, - Mask: { - Name: "Маска", - Page: { - Title: "Шаблон подсказки", - SubTitle: (count: number) => `${count} шаблонов подсказок`, - Search: "Поиск шаблонов", - Create: "Создать", - }, - Item: { - Info: (count: number) => `${count} подсказок`, - Chat: "Чат", - View: "Просмотр", - Edit: "Редактировать", - Delete: "Удалить", - DeleteConfirm: "Подтвердить удаление?", - }, - EditModal: { - Title: (readonly: boolean) => - `Редактирование шаблона подсказки ${ - readonly ? "(только для чтения)" : "" - }`, - Download: "Скачать", - Clone: "Клонировать", - }, - Config: { - Avatar: "Аватар бота", - Name: "Имя бота", - }, - }, - NewChat: { - Return: "Вернуться", - Skip: "Пропустить", - Title: "Выберите маску", - SubTitle: "Общайтесь с душой за маской", - More: "Найти еще", - NotShow: "Не показывать снова", - ConfirmNoShow: - "Подтвердите отключение? Вы можете включить это позже в настройках.", - }, - - UI: { - Confirm: "Подтвердить", - Cancel: "Отмена", - Close: "Закрыть", - Create: "Создать", - Edit: "Редактировать", - }, - Exporter: { - Model: "Модель", - Messages: "Сообщения", - Topic: "Тема", - Time: "Время", - }, -}; - -export default ru; diff --git a/app/locales/tr.ts b/app/locales/tr.ts deleted file mode 100644 index 2383a5494..000000000 --- a/app/locales/tr.ts +++ /dev/null @@ -1,241 +0,0 @@ -import { SubmitKey } from "../store/config"; -import type { PartialLocaleType } from "./index"; - -const tr: PartialLocaleType = { - WIP: "Çalışma devam ediyor...", - Error: { - Unauthorized: - "Yetkisiz erişim, lütfen erişim kodunu ayarlar sayfasından giriniz.", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} mesaj`, - }, - Chat: { - SubTitle: (count: number) => `ChatGPT tarafından ${count} mesaj`, - Actions: { - ChatList: "Sohbet Listesine Git", - CompressedHistory: "Sıkıştırılmış Geçmiş Bellek Komutu", - Export: "Tüm Mesajları Markdown Olarak Dışa Aktar", - Copy: "Kopyala", - Stop: "Durdur", - Retry: "Tekrar Dene", - Delete: "Delete", - }, - Rename: "Sohbeti Yeniden Adlandır", - Typing: "Yazıyor…", - Input: (submitKey: string) => { - var inputHints = `Göndermek için ${submitKey}`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ", kaydırmak için Shift + Enter"; - } - return inputHints + ", komutları aramak için / (eğik çizgi)"; - }, - Send: "Gönder", - Config: { - Reset: "Reset to Default", - SaveAs: "Save as Mask", - }, - }, - Export: { - Title: "Tüm Mesajlar", - Copy: "Tümünü Kopyala", - Download: "İndir", - MessageFromYou: "Sizin Mesajınız", - MessageFromChatGPT: "ChatGPT'nin Mesajı", - }, - Memory: { - Title: "Bellek Komutları", - EmptyContent: "Henüz değil.", - Send: "Belleği Gönder", - Copy: "Belleği Kopyala", - Reset: "Oturumu Sıfırla", - ResetConfirm: - "Sıfırlama, geçerli görüşme geçmişini ve geçmiş belleği siler. Sıfırlamak istediğinizden emin misiniz?", - }, - Home: { - NewChat: "Yeni Sohbet", - DeleteChat: "Seçili sohbeti silmeyi onaylıyor musunuz?", - DeleteToast: "Sohbet Silindi", - Revert: "Geri Al", - }, - Settings: { - Title: "Ayarlar", - SubTitle: "Tüm Ayarlar", - - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "Tüm Diller", - }, - Avatar: "Avatar", - FontSize: { - Title: "Yazı Boyutu", - SubTitle: "Sohbet içeriğinin yazı boyutunu ayarlayın", - }, - Update: { - Version: (x: string) => `Sürüm: ${x}`, - IsLatest: "En son sürüm", - CheckUpdate: "Güncellemeyi Kontrol Et", - IsChecking: "Güncelleme kontrol ediliyor...", - FoundUpdate: (x: string) => `Yeni sürüm bulundu: ${x}`, - GoToUpdate: "Güncelle", - }, - SendKey: "Gönder Tuşu", - Theme: "Tema", - TightBorder: "Tam Ekran", - SendPreviewBubble: { - Title: "Mesaj Önizleme Balonu", - SubTitle: "Preview markdown in bubble", - }, - Mask: { - Splash: { - Title: "Mask Splash Screen", - SubTitle: "Show a mask splash screen before starting new chat", - }, - }, - Prompt: { - Disable: { - Title: "Otomatik tamamlamayı devre dışı bırak", - SubTitle: "Otomatik tamamlamayı kullanmak için / (eğik çizgi) girin", - }, - List: "Komut Listesi", - ListCount: (builtin: number, custom: number) => - `${builtin} yerleşik, ${custom} kullanıcı tanımlı`, - Edit: "Düzenle", - Modal: { - Title: "Prompt List", - Add: "Add One", - Search: "Search Prompts", - }, - EditModal: { - Title: "Edit Prompt", - }, - }, - HistoryCount: { - Title: "Ekli Mesaj Sayısı", - SubTitle: "İstek başına ekli gönderilen mesaj sayısı", - }, - CompressThreshold: { - Title: "Geçmiş Sıkıştırma Eşiği", - SubTitle: - "Sıkıştırılmamış mesajların uzunluğu bu değeri aşarsa sıkıştırılır", - }, - Token: { - Title: "API Anahtarı", - SubTitle: "Erişim kodu sınırını yoksaymak için anahtarınızı kullanın", - Placeholder: "OpenAI API Anahtarı", - }, - Usage: { - Title: "Hesap Bakiyesi", - SubTitle(used: any, total: any) { - return `Bu ay kullanılan $${used}, abonelik $${total}`; - }, - IsChecking: "Kontrol ediliyor...", - Check: "Tekrar Kontrol Et", - NoAccess: "Bakiyeyi kontrol etmek için API anahtarını girin", - }, - AccessCode: { - Title: "Erişim Kodu", - SubTitle: "Erişim kontrolü etkinleştirme", - Placeholder: "Erişim Kodu Gerekiyor", - }, - Model: "Model", - Temperature: { - Title: "Gerçeklik", - SubTitle: - "Daha büyük bir değer girildiğinde gerçeklik oranı düşer ve daha rastgele çıktılar üretir", - }, - MaxTokens: { - Title: "Maksimum Belirteç", - SubTitle: - "Girdi belirteçlerinin ve oluşturulan belirteçlerin maksimum uzunluğu", - }, - PresencePenalty: { - Title: "Varlık Cezası", - SubTitle: - "Daha büyük bir değer, yeni konular hakkında konuşma olasılığını artırır", - }, - FrequencyPenalty: { - Title: "Frekans Cezası", - SubTitle: - "Aynı satırı tekrar etme olasılığını azaltan daha büyük bir değer", - }, - }, - Store: { - DefaultTopic: "Yeni Konuşma", - BotHello: "Merhaba! Size bugün nasıl yardımcı olabilirim?", - Error: "Bir şeyler yanlış gitti. Lütfen daha sonra tekrar deneyiniz.", - Prompt: { - History: (content: string) => - "Bu, yapay zeka ile kullanıcı arasındaki sohbet geçmişinin bir özetidir: " + - content, - Topic: - "Lütfen herhangi bir giriş, noktalama işareti, tırnak işareti, nokta, sembol veya ek metin olmadan konuşmamızı özetleyen dört ila beş kelimelik bir başlık oluşturun. Çevreleyen tırnak işaretlerini kaldırın.", - Summarize: - "Gelecekteki bağlam için bir bilgi istemi olarak kullanmak üzere tartışmamızı en fazla 200 kelimeyle özetleyin.", - }, - }, - Copy: { - Success: "Panoya kopyalandı", - Failed: "Kopyalama başarısız oldu, lütfen panoya erişim izni verin", - }, - Context: { - Toast: (x: any) => `${x} bağlamsal bellek komutu`, - Edit: "Bağlamsal ve Bellek Komutları", - Add: "Yeni Ekle", - }, - Plugin: { - Name: "Plugin", - }, - Mask: { - Name: "Mask", - Page: { - Title: "Prompt Template", - SubTitle: (count: number) => `${count} prompt templates`, - Search: "Search Templates", - Create: "Create", - }, - Item: { - Info: (count: number) => `${count} prompts`, - Chat: "Chat", - View: "View", - Edit: "Edit", - Delete: "Delete", - DeleteConfirm: "Confirm to delete?", - }, - EditModal: { - Title: (readonly: boolean) => - `Edit Prompt Template ${readonly ? "(readonly)" : ""}`, - Download: "Download", - Clone: "Clone", - }, - Config: { - Avatar: "Bot Avatar", - Name: "Bot Name", - }, - }, - NewChat: { - Return: "Return", - Skip: "Skip", - Title: "Pick a Mask", - SubTitle: "Chat with the Soul behind the Mask", - More: "Find More", - NotShow: "Not Show Again", - ConfirmNoShow: "Confirm to disable?You can enable it in settings later.", - }, - - UI: { - Confirm: "Confirm", - Cancel: "Cancel", - Close: "Close", - Create: "Create", - Edit: "Edit", - }, - Exporter: { - Model: "Model", - Messages: "Mesajlar", - Topic: "Konu", - Time: "Zaman", - }, -}; - -export default tr; diff --git a/app/locales/tw.ts b/app/locales/tw.ts deleted file mode 100644 index 1afb0eb71..000000000 --- a/app/locales/tw.ts +++ /dev/null @@ -1,230 +0,0 @@ -import { SubmitKey } from "../store/config"; -import type { PartialLocaleType } from "./index"; - -const tw: PartialLocaleType = { - WIP: "該功能仍在開發中……", - Error: { - Unauthorized: "目前您的狀態是未授權,請前往設定頁面輸入授權碼。", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} 條對話`, - }, - Chat: { - SubTitle: (count: number) => `您已經與 ChatGPT 進行了 ${count} 條對話`, - Actions: { - ChatList: "查看訊息列表", - CompressedHistory: "查看壓縮後的歷史 Prompt", - Export: "匯出聊天紀錄", - Copy: "複製", - Stop: "停止", - Retry: "重試", - Delete: "刪除", - }, - Rename: "重命名對話", - Typing: "正在輸入…", - Input: (submitKey: string) => { - var inputHints = `輸入訊息後,按下 ${submitKey} 鍵即可發送`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ",Shift + Enter 鍵換行"; - } - return inputHints; - }, - Send: "發送", - Config: { - Reset: "重置默认", - SaveAs: "另存为面具", - }, - }, - Export: { - Title: "將聊天記錄匯出為 Markdown", - Copy: "複製全部", - Download: "下載檔案", - MessageFromYou: "來自您的訊息", - MessageFromChatGPT: "來自 ChatGPT 的訊息", - }, - Memory: { - Title: "上下文記憶 Prompt", - EmptyContent: "尚未記憶", - Copy: "複製全部", - Send: "發送記憶", - Reset: "重設對話", - ResetConfirm: "重設後將清除目前對話記錄以及歷史記憶,確認重設?", - }, - Home: { - NewChat: "新的對話", - DeleteChat: "確定要刪除選取的對話嗎?", - DeleteToast: "已刪除對話", - Revert: "撤銷", - }, - Settings: { - Title: "設定", - SubTitle: "設定選項", - - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "所有语言", - }, - Avatar: "大頭貼", - FontSize: { - Title: "字型大小", - SubTitle: "聊天內容的字型大小", - }, - Update: { - Version: (x: string) => `當前版本:${x}`, - IsLatest: "已是最新版本", - CheckUpdate: "檢查更新", - IsChecking: "正在檢查更新...", - FoundUpdate: (x: string) => `發現新版本:${x}`, - GoToUpdate: "前往更新", - }, - SendKey: "發送鍵", - Theme: "主題", - TightBorder: "緊湊邊框", - SendPreviewBubble: { - Title: "預覽氣泡", - SubTitle: "在预览气泡中预览 Markdown 内容", - }, - Mask: { - Splash: { - Title: "面具启动页", - SubTitle: "新建聊天时,展示面具启动页", - }, - }, - Prompt: { - Disable: { - Title: "停用提示詞自動補齊", - SubTitle: "在輸入框開頭輸入 / 即可觸發自動補齊", - }, - List: "自定義提示詞列表", - ListCount: (builtin: number, custom: number) => - `內建 ${builtin} 條,用戶定義 ${custom} 條`, - Edit: "編輯", - Modal: { - Title: "提示詞列表", - Add: "新增一條", - Search: "搜尋提示詞", - }, - EditModal: { - Title: "编辑提示词", - }, - }, - HistoryCount: { - Title: "附帶歷史訊息數", - SubTitle: "每次請求附帶的歷史訊息數", - }, - CompressThreshold: { - Title: "歷史訊息長度壓縮閾值", - SubTitle: "當未壓縮的歷史訊息超過該值時,將進行壓縮", - }, - Token: { - Title: "API Key", - SubTitle: "使用自己的 Key 可規避授權存取限制", - Placeholder: "OpenAI API Key", - }, - Usage: { - Title: "帳戶餘額", - SubTitle(used: any, total: any) { - return `本月已使用 $${used},訂閱總額 $${total}`; - }, - IsChecking: "正在檢查…", - Check: "重新檢查", - NoAccess: "輸入API Key查看餘額", - }, - AccessCode: { - Title: "授權碼", - SubTitle: "目前是未授權存取狀態", - Placeholder: "請輸入授權碼", - }, - Model: "模型 (model)", - Temperature: { - Title: "隨機性 (temperature)", - SubTitle: "值越大,回應越隨機", - }, - MaxTokens: { - Title: "單次回應限制 (max_tokens)", - SubTitle: "單次互動所用的最大 Token 數", - }, - PresencePenalty: { - Title: "話題新穎度 (presence_penalty)", - SubTitle: "值越大,越有可能擴展到新話題", - }, - FrequencyPenalty: { - Title: "頻率懲罰度 (frequency_penalty)", - SubTitle: "值越大,越有可能降低重複字詞", - }, - }, - Store: { - DefaultTopic: "新的對話", - BotHello: "請問需要我的協助嗎?", - Error: "出錯了,請稍後再嘗試", - Prompt: { - History: (content: string) => - "這是 AI 與用戶的歷史聊天總結,作為前情提要:" + content, - Topic: - "Use the language used by the user (e.g. en for english conversation, zh-hant for chinese conversation, etc.) to generate a title (at most 6 words) summarizing our conversation without any lead-in, quotation marks, preamble like 'Title:', direct text copies, single-word replies, quotation marks, translations, or brackets. Remove enclosing quotation marks. The title should make third-party grasp the essence of the conversation in first sight.", - Summarize: - "Use the language used by the user (e.g. en-us for english conversation, zh-hant for chinese conversation, etc.) to summarise the conversation in at most 200 words. The summary will be used as prompt for you to continue the conversation in the future.", - }, - }, - Copy: { - Success: "已複製到剪貼簿中", - Failed: "複製失敗,請賦予剪貼簿權限", - }, - Context: { - Toast: (x: any) => `已設定 ${x} 條前置上下文`, - Edit: "前置上下文和歷史記憶", - Add: "新增一條", - }, - Plugin: { Name: "插件" }, - Mask: { - Name: "面具", - Page: { - Title: "预设角色面具", - SubTitle: (count: number) => `${count} 个预设角色定义`, - Search: "搜索角色面具", - Create: "新建", - }, - Item: { - Info: (count: number) => `包含 ${count} 条预设对话`, - Chat: "对话", - View: "查看", - Edit: "编辑", - Delete: "删除", - DeleteConfirm: "确认删除?", - }, - EditModal: { - Title: (readonly: boolean) => - `编辑预设面具 ${readonly ? "(只读)" : ""}`, - Download: "下载预设", - Clone: "克隆预设", - }, - Config: { - Avatar: "角色头像", - Name: "角色名称", - }, - }, - NewChat: { - Return: "返回", - Skip: "跳过", - Title: "挑选一个面具", - SubTitle: "现在开始,与面具背后的灵魂思维碰撞", - More: "搜索更多", - NotShow: "不再展示", - ConfirmNoShow: "确认禁用?禁用后可以随时在设置中重新启用。", - }, - UI: { - Confirm: "确认", - Cancel: "取消", - Close: "关闭", - Create: "新建", - Edit: "编辑", - }, - Exporter: { - Model: "模型", - Messages: "消息", - Topic: "主題", - Time: "時間", - }, -}; - -export default tw; diff --git a/app/locales/vi.ts b/app/locales/vi.ts deleted file mode 100644 index 428f93857..000000000 --- a/app/locales/vi.ts +++ /dev/null @@ -1,236 +0,0 @@ -import { SubmitKey } from "../store/config"; -import type { PartialLocaleType } from "./index"; - -const vi: PartialLocaleType = { - WIP: "Sắp ra mắt...", - Error: { - Unauthorized: - "Truy cập chưa xác thực, vui lòng nhập mã truy cập trong trang cài đặt.", - }, - ChatItem: { - ChatItemCount: (count: number) => `${count} tin nhắn`, - }, - Chat: { - SubTitle: (count: number) => `${count} tin nhắn với ChatGPT`, - Actions: { - ChatList: "Xem danh sách chat", - CompressedHistory: "Nén tin nhắn trong quá khứ", - Export: "Xuất tất cả tin nhắn dưới dạng Markdown", - Copy: "Sao chép", - Stop: "Dừng", - Retry: "Thử lại", - Delete: "Xóa", - }, - Rename: "Đổi tên", - Typing: "Đang nhập…", - Input: (submitKey: string) => { - var inputHints = `${submitKey} để gửi`; - if (submitKey === String(SubmitKey.Enter)) { - inputHints += ", Shift + Enter để xuống dòng"; - } - return inputHints + ", / để tìm kiếm mẫu gợi ý"; - }, - Send: "Gửi", - Config: { - Reset: "Khôi phục cài đặt gốc", - SaveAs: "Lưu dưới dạng Mẫu", - }, - }, - Export: { - Title: "Tất cả tin nhắn", - Copy: "Sao chép tất cả", - Download: "Tải xuống", - MessageFromYou: "Tin nhắn của bạn", - MessageFromChatGPT: "Tin nhắn từ ChatGPT", - }, - Memory: { - Title: "Lịch sử tin nhắn", - EmptyContent: "Chưa có tin nhắn", - Send: "Gửi tin nhắn trong quá khứ", - Copy: "Sao chép tin nhắn trong quá khứ", - Reset: "Đặt lại phiên", - ResetConfirm: - "Đặt lại sẽ xóa toàn bộ lịch sử trò chuyện hiện tại và bộ nhớ. Bạn có chắc chắn muốn đặt lại không?", - }, - Home: { - NewChat: "Cuộc trò chuyện mới", - DeleteChat: "Xác nhận xóa các cuộc trò chuyện đã chọn?", - DeleteToast: "Đã xóa cuộc trò chuyện", - Revert: "Khôi phục", - }, - Settings: { - Title: "Cài đặt", - SubTitle: "Tất cả cài đặt", - - Lang: { - Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` - All: "Tất cả ngôn ngữ", - }, - Avatar: "Ảnh đại diện", - FontSize: { - Title: "Font chữ", - SubTitle: "Thay đổi font chữ của nội dung trò chuyện", - }, - Update: { - Version: (x: string) => `Phiên bản: ${x}`, - IsLatest: "Phiên bản mới nhất", - CheckUpdate: "Kiểm tra bản cập nhật", - IsChecking: "Kiểm tra bản cập nhật...", - FoundUpdate: (x: string) => `Phát hiện phiên bản mới: ${x}`, - GoToUpdate: "Cập nhật", - }, - SendKey: "Phím gửi", - Theme: "Theme", - TightBorder: "Chế độ không viền", - SendPreviewBubble: { - Title: "Gửi bong bóng xem trước", - SubTitle: "Xem trước nội dung markdown bằng bong bóng", - }, - Mask: { - Splash: { - Title: "Mask Splash Screen", - SubTitle: "Chớp màn hình khi bắt đầu cuộc trò chuyện mới", - }, - }, - Prompt: { - Disable: { - Title: "Vô hiệu hóa chức năng tự động hoàn thành", - SubTitle: "Nhập / để kích hoạt chức năng tự động hoàn thành", - }, - List: "Danh sách mẫu gợi ý", - ListCount: (builtin: number, custom: number) => - `${builtin} có sẵn, ${custom} do người dùng xác định`, - Edit: "Chỉnh sửa", - Modal: { - Title: "Danh sách mẫu gợi ý", - Add: "Thêm", - Search: "Tìm kiếm mẫu", - }, - EditModal: { - Title: "Chỉnh sửa mẫu", - }, - }, - HistoryCount: { - Title: "Số lượng tin nhắn đính kèm", - SubTitle: "Số lượng tin nhắn trong quá khứ được gửi kèm theo mỗi yêu cầu", - }, - CompressThreshold: { - Title: "Ngưỡng nén lịch sử tin nhắn", - SubTitle: "Thực hiện nén nếu số lượng tin nhắn chưa nén vượt quá ngưỡng", - }, - Token: { - Title: "API Key", - SubTitle: "Sử dụng khóa của bạn để bỏ qua giới hạn mã truy cập", - Placeholder: "OpenAI API Key", - }, - Usage: { - Title: "Hạn mức tài khoản", - SubTitle(used: any, total: any) { - return `Đã sử dụng $${used} trong tháng này, hạn mức $${total}`; - }, - IsChecking: "Đang kiểm tra...", - Check: "Kiểm tra", - NoAccess: "Nhập API Key để kiểm tra hạn mức", - }, - AccessCode: { - Title: "Mã truy cập", - SubTitle: "Đã bật kiểm soát truy cập", - Placeholder: "Nhập mã truy cập", - }, - Model: "Mô hình", - Temperature: { - Title: "Tính ngẫu nhiên (temperature)", - SubTitle: "Giá trị càng lớn, câu trả lời càng ngẫu nhiên", - }, - MaxTokens: { - Title: "Giới hạn số lượng token (max_tokens)", - SubTitle: "Số lượng token tối đa được sử dụng trong mỗi lần tương tác", - }, - PresencePenalty: { - Title: "Chủ đề mới (presence_penalty)", - SubTitle: "Giá trị càng lớn tăng khả năng mở rộng sang các chủ đề mới", - }, - FrequencyPenalty: { - Title: "Hình phạt tần suất", - SubTitle: "Giá trị lớn hơn làm giảm khả năng lặp lại cùng một dòng", - }, - }, - Store: { - DefaultTopic: "Cuộc trò chuyện mới", - BotHello: "Xin chào! Mình có thể giúp gì cho bạn?", - Error: "Có lỗi xảy ra, vui lòng thử lại sau.", - Prompt: { - History: (content: string) => - "Tóm tắt ngắn gọn cuộc trò chuyện giữa người dùng và AI: " + content, - Topic: - "Sử dụng 4 đến 5 từ tóm tắt cuộc trò chuyện này mà không có phần mở đầu, dấu chấm câu, dấu ngoặc kép, dấu chấm, ký hiệu hoặc văn bản bổ sung nào. Loại bỏ các dấu ngoặc kép kèm theo.", - Summarize: - "Tóm tắt cuộc trò chuyện này một cách ngắn gọn trong 200 từ hoặc ít hơn để sử dụng làm gợi ý cho ngữ cảnh tiếp theo.", - }, - }, - Copy: { - Success: "Sao chép vào bộ nhớ tạm", - Failed: - "Sao chép không thành công, vui lòng cấp quyền truy cập vào bộ nhớ tạm", - }, - Context: { - Toast: (x: any) => `Sử dụng ${x} tin nhắn chứa ngữ cảnh`, - Edit: "Thiết lập ngữ cảnh và bộ nhớ", - Add: "Thêm tin nhắn", - }, - Plugin: { - Name: "Plugin", - }, - Mask: { - Name: "Mẫu", - Page: { - Title: "Mẫu trò chuyện", - SubTitle: (count: number) => `${count} mẫu`, - Search: "Tìm kiếm mẫu", - Create: "Tạo", - }, - Item: { - Info: (count: number) => `${count} tin nhắn`, - Chat: "Chat", - View: "Xem trước", - Edit: "Chỉnh sửa", - Delete: "Xóa", - DeleteConfirm: "Xác nhận xóa?", - }, - EditModal: { - Title: (readonly: boolean) => - `Chỉnh sửa mẫu ${readonly ? "(chỉ xem)" : ""}`, - Download: "Tải xuống", - Clone: "Tạo bản sao", - }, - Config: { - Avatar: "Ảnh đại diện bot", - Name: "Tên bot", - }, - }, - NewChat: { - Return: "Quay lại", - Skip: "Bỏ qua", - Title: "Chọn 1 biểu tượng", - SubTitle: "Bắt đầu trò chuyện ẩn sau lớp mặt nạ", - More: "Tìm thêm", - NotShow: "Không hiển thị lại", - ConfirmNoShow: "Xác nhận tắt? Bạn có thể bật lại trong phần cài đặt.", - }, - - UI: { - Confirm: "Xác nhận", - Cancel: "Hủy", - Close: "Đóng", - Create: "Tạo", - Edit: "Chỉnh sửa", - }, - Exporter: { - Model: "Mô hình", - Messages: "Thông điệp", - Topic: "Chủ đề", - Time: "Thời gian", - }, -}; - -export default vi;