mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-11-14 21:13:47 +08:00
Merge remote-tracking branch 'upstream/main'
This commit is contained in:
@@ -10,6 +10,7 @@ const ar: PartialLocaleType = {
|
||||
Auth: {
|
||||
Title: "تحتاج إلى رمز الوصول",
|
||||
Tips: "يرجى إدخال رمز الوصول أدناه",
|
||||
SubTips: "أو أدخل مفتاح واجهة برمجة تطبيقات OpenAI الخاص بك",
|
||||
Input: "رمز الوصول",
|
||||
Confirm: "تأكيد",
|
||||
Later: "لاحقًا",
|
||||
@@ -233,6 +234,9 @@ ${builtin} مدمجة، ${custom} تم تعريفها من قبل المستخد
|
||||
Plugin: {
|
||||
Name: "المكوّن الإضافي",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "أنت مساعد ي",
|
||||
},
|
||||
Mask: {
|
||||
Name: "الأقنعة",
|
||||
Page: {
|
||||
|
||||
@@ -10,6 +10,7 @@ const bn: PartialLocaleType = {
|
||||
Auth: {
|
||||
Title: "একটি অ্যাক্সেস কোড প্রয়োজন",
|
||||
Tips: "নীচে অ্যাক্সেস কোড ইনপুট করুন",
|
||||
SubTips: "অথবা আপনার OpenAI API কী প্রবেশ করুন",
|
||||
Input: "অ্যাক্সেস কোড",
|
||||
Confirm: "নিশ্চিত করুন",
|
||||
Later: "পরে",
|
||||
@@ -271,6 +272,9 @@ const bn: PartialLocaleType = {
|
||||
Plugin: {
|
||||
Name: "প্লাগইন",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "আপনি একটি সহকারী যা",
|
||||
},
|
||||
Mask: {
|
||||
Name: "মাস্ক",
|
||||
Page: {
|
||||
|
||||
@@ -13,6 +13,7 @@ const cn = {
|
||||
Auth: {
|
||||
Title: "需要密码",
|
||||
Tips: "管理员开启了密码验证,请在下方填入访问码",
|
||||
SubTips: "或者输入你的 OpenAI API 密钥",
|
||||
Input: "在此处填写访问码",
|
||||
Confirm: "确认",
|
||||
Later: "稍后再说",
|
||||
@@ -178,6 +179,49 @@ const cn = {
|
||||
Title: "自动生成标题",
|
||||
SubTitle: "根据对话内容生成合适的标题",
|
||||
},
|
||||
Sync: {
|
||||
CloudState: "云端数据",
|
||||
NotSyncYet: "还没有进行过同步",
|
||||
Success: "同步成功",
|
||||
Fail: "同步失败",
|
||||
|
||||
Config: {
|
||||
Modal: {
|
||||
Title: "配置云同步",
|
||||
Check: "检查可用性",
|
||||
},
|
||||
SyncType: {
|
||||
Title: "同步类型",
|
||||
SubTitle: "选择喜爱的同步服务器",
|
||||
},
|
||||
Proxy: {
|
||||
Title: "启用代理",
|
||||
SubTitle: "在浏览器中同步时,必须启用代理以避免跨域限制",
|
||||
},
|
||||
ProxyUrl: {
|
||||
Title: "代理地址",
|
||||
SubTitle: "仅适用于本项目自带的跨域代理",
|
||||
},
|
||||
|
||||
WebDav: {
|
||||
Endpoint: "WebDAV 地址",
|
||||
UserName: "用户名",
|
||||
Password: "密码",
|
||||
},
|
||||
|
||||
UpStash: {
|
||||
Endpoint: "UpStash Redis REST Url",
|
||||
UserName: "备份名称",
|
||||
Password: "UpStash Redis REST Token",
|
||||
},
|
||||
},
|
||||
|
||||
LocalState: "本地数据",
|
||||
Overview: (overview: any) => {
|
||||
return `${overview.chat} 次对话,${overview.message} 条消息,${overview.prompt} 条提示词,${overview.mask} 个面具`;
|
||||
},
|
||||
ImportFailed: "导入失败",
|
||||
},
|
||||
Mask: {
|
||||
Splash: {
|
||||
Title: "面具启动页",
|
||||
@@ -280,6 +324,10 @@ const cn = {
|
||||
Success: "已写入剪切板",
|
||||
Failed: "复制失败,请赋予剪切板权限",
|
||||
},
|
||||
Download: {
|
||||
Success: "内容已下载到您的目录。",
|
||||
Failed: "下载失败。",
|
||||
},
|
||||
Context: {
|
||||
Toast: (x: any) => `包含 ${x} 条预设提示词`,
|
||||
Edit: "当前对话设置",
|
||||
@@ -290,6 +338,9 @@ const cn = {
|
||||
Plugin: {
|
||||
Name: "插件",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "你是一个助手",
|
||||
},
|
||||
Mask: {
|
||||
Name: "面具",
|
||||
Page: {
|
||||
@@ -352,6 +403,10 @@ const cn = {
|
||||
Close: "关闭",
|
||||
Create: "新建",
|
||||
Edit: "编辑",
|
||||
Export: "导出",
|
||||
Import: "导入",
|
||||
Sync: "同步",
|
||||
Config: "配置",
|
||||
},
|
||||
Exporter: {
|
||||
Model: "模型",
|
||||
|
||||
@@ -188,6 +188,9 @@ const cs: PartialLocaleType = {
|
||||
Plugin: {
|
||||
Name: "Plugin",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "Jste asistent, který",
|
||||
},
|
||||
Mask: {
|
||||
Name: "Maska",
|
||||
Page: {
|
||||
|
||||
@@ -192,6 +192,9 @@ const de: PartialLocaleType = {
|
||||
Plugin: {
|
||||
Name: "Plugin",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "Du bist ein Assistent, der",
|
||||
},
|
||||
Mask: {
|
||||
Name: "Mask",
|
||||
Page: {
|
||||
|
||||
@@ -15,6 +15,7 @@ const en: LocaleType = {
|
||||
Auth: {
|
||||
Title: "Need Access Code",
|
||||
Tips: "Please enter access code below",
|
||||
SubTips: "Or enter your OpenAI API Key",
|
||||
Input: "access code",
|
||||
Confirm: "Confirm",
|
||||
Later: "Later",
|
||||
@@ -180,6 +181,50 @@ const en: LocaleType = {
|
||||
Title: "Auto Generate Title",
|
||||
SubTitle: "Generate a suitable title based on the conversation content",
|
||||
},
|
||||
Sync: {
|
||||
CloudState: "Last Update",
|
||||
NotSyncYet: "Not sync yet",
|
||||
Success: "Sync Success",
|
||||
Fail: "Sync Fail",
|
||||
|
||||
Config: {
|
||||
Modal: {
|
||||
Title: "Config Sync",
|
||||
Check: "Check Connection",
|
||||
},
|
||||
SyncType: {
|
||||
Title: "Sync Type",
|
||||
SubTitle: "Choose your favorite sync service",
|
||||
},
|
||||
Proxy: {
|
||||
Title: "Enable CORS Proxy",
|
||||
SubTitle: "Enable a proxy to avoid cross-origin restrictions",
|
||||
},
|
||||
ProxyUrl: {
|
||||
Title: "Proxy Endpoint",
|
||||
SubTitle:
|
||||
"Only applicable to the built-in CORS proxy for this project",
|
||||
},
|
||||
|
||||
WebDav: {
|
||||
Endpoint: "WebDAV Endpoint",
|
||||
UserName: "User Name",
|
||||
Password: "Password",
|
||||
},
|
||||
|
||||
UpStash: {
|
||||
Endpoint: "UpStash Redis REST Url",
|
||||
UserName: "Backup Name",
|
||||
Password: "UpStash Redis REST Token",
|
||||
},
|
||||
},
|
||||
|
||||
LocalState: "Local Data",
|
||||
Overview: (overview: any) => {
|
||||
return `${overview.chat} chats,${overview.message} messages,${overview.prompt} prompts,${overview.mask} masks`;
|
||||
},
|
||||
ImportFailed: "Failed to import from file",
|
||||
},
|
||||
Mask: {
|
||||
Splash: {
|
||||
Title: "Mask Splash Screen",
|
||||
@@ -285,6 +330,10 @@ const en: LocaleType = {
|
||||
Success: "Copied to clipboard",
|
||||
Failed: "Copy failed, please grant permission to access clipboard",
|
||||
},
|
||||
Download: {
|
||||
Success: "Content downloaded to your directory.",
|
||||
Failed: "Download failed.",
|
||||
},
|
||||
Context: {
|
||||
Toast: (x: any) => `With ${x} contextual prompts`,
|
||||
Edit: "Current Chat Settings",
|
||||
@@ -295,6 +344,9 @@ const en: LocaleType = {
|
||||
Plugin: {
|
||||
Name: "Plugin",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "You are an assistant that",
|
||||
},
|
||||
Mask: {
|
||||
Name: "Mask",
|
||||
Page: {
|
||||
@@ -352,6 +404,10 @@ const en: LocaleType = {
|
||||
Close: "Close",
|
||||
Create: "Create",
|
||||
Edit: "Edit",
|
||||
Export: "Export",
|
||||
Import: "Import",
|
||||
Sync: "Sync",
|
||||
Config: "Config",
|
||||
},
|
||||
Exporter: {
|
||||
Model: "Model",
|
||||
|
||||
@@ -190,6 +190,9 @@ const es: PartialLocaleType = {
|
||||
Plugin: {
|
||||
Name: "Plugin",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "Eres un asistente que",
|
||||
},
|
||||
Mask: {
|
||||
Name: "Mask",
|
||||
Page: {
|
||||
|
||||
@@ -244,6 +244,9 @@ const fr: PartialLocaleType = {
|
||||
Plugin: {
|
||||
Name: "Extension",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "Eres un asistente que",
|
||||
},
|
||||
Mask: {
|
||||
Name: "Masque",
|
||||
Page: {
|
||||
|
||||
393
app/locales/id.ts
Normal file
393
app/locales/id.ts
Normal file
@@ -0,0 +1,393 @@
|
||||
import { SubmitKey } from "../store/config";
|
||||
import { PartialLocaleType } from "./index";
|
||||
|
||||
const id: PartialLocaleType = {
|
||||
WIP: "Coming Soon...",
|
||||
Error: {
|
||||
Unauthorized: "Akses tidak diizinkan, silakan masukkan kode akses atau masukkan kunci API OpenAI Anda. di halaman [autentikasi](/#/auth) atau di halaman [Pengaturan](/#/settings).",
|
||||
},
|
||||
Auth: {
|
||||
Title: "Diperlukan Kode Akses",
|
||||
Tips: "Masukkan kode akses di bawah",
|
||||
SubTips: "Atau masukkan kunci API OpenAI Anda",
|
||||
Input: "Kode Akses",
|
||||
Confirm: "Konfirmasi",
|
||||
Later: "Nanti",
|
||||
},
|
||||
ChatItem: {
|
||||
ChatItemCount: (count: number) => `${count} pesan`,
|
||||
},
|
||||
Chat: {
|
||||
SubTitle: (count: number) => `${count} pesan`,
|
||||
Actions: {
|
||||
ChatList: "Buka Daftar Chat",
|
||||
CompressedHistory: "Ekspor Riwayat Terkompresi",
|
||||
Export: "Ekspor Semua Pesan sebagai Markdown",
|
||||
Copy: "Salin",
|
||||
Stop: "Berhenti",
|
||||
Retry: "Coba Lagi",
|
||||
Pin: "Pin",
|
||||
PinToastContent: "2 pesan telah ditandai",
|
||||
PinToastAction: "Lihat",
|
||||
Delete: "Hapus",
|
||||
Edit: "Edit",
|
||||
},
|
||||
Commands: {
|
||||
new: "Mulai Chat Baru",
|
||||
newm: "Mulai Chat Baru dengan Masks",
|
||||
next: "Chat Selanjutnya",
|
||||
prev: "Chat Sebelumnya",
|
||||
clear: "Bersihkan Percakapan",
|
||||
del: "Hapus Chat",
|
||||
},
|
||||
InputActions: {
|
||||
Stop: "Berhenti",
|
||||
ToBottom: "Ke Bagian Bawah",
|
||||
Theme: {
|
||||
auto: "Otomatis",
|
||||
light: "Tema Terang",
|
||||
dark: "Tema Gelap",
|
||||
},
|
||||
Prompt: "Prompts",
|
||||
Masks: "Masks",
|
||||
Clear: "Bersihkan Percakapan",
|
||||
Settings: "Pengaturan",
|
||||
},
|
||||
Rename: "Ubah Nama Chat",
|
||||
Typing: "Mengetik...",
|
||||
Input: (submitKey: string) => {
|
||||
var inputHints = `${submitKey} untuk mengirim`;
|
||||
if (submitKey === String(SubmitKey.Enter)) {
|
||||
inputHints += ", Shift + Enter untuk membalut";
|
||||
}
|
||||
return (
|
||||
inputHints + ", / untuk mencari prompt, : untuk menggunakan perintah"
|
||||
);
|
||||
},
|
||||
Send: "Kirim",
|
||||
Config: {
|
||||
Reset: "Reset ke Default",
|
||||
SaveAs: "Simpan sebagai Masks",
|
||||
},
|
||||
},
|
||||
Export: {
|
||||
Title: "Ekspor Pesan",
|
||||
Copy: "Salin Semua",
|
||||
Download: "Unduh",
|
||||
MessageFromYou: "Pesan dari Anda",
|
||||
MessageFromChatGPT: "Pesan dari ChatGPT",
|
||||
Share: "Bagikan ke ShareGPT",
|
||||
Format: {
|
||||
Title: "Format Ekspor",
|
||||
SubTitle: "Markdown atau Gambar PNG",
|
||||
},
|
||||
IncludeContext: {
|
||||
Title: "Sertakan Konteks",
|
||||
SubTitle: "Apakah akan menyertakan masks",
|
||||
},
|
||||
Steps: {
|
||||
Select: "Pilih",
|
||||
Preview: "Pratinjau",
|
||||
},
|
||||
},
|
||||
Select: {
|
||||
Search: "Cari",
|
||||
All: "Pilih Semua",
|
||||
Latest: "Pilih Terbaru",
|
||||
Clear: "Bersihkan",
|
||||
},
|
||||
Memory: {
|
||||
Title: "Prompt Memori",
|
||||
EmptyContent: "Belum ada yang tersedia.",
|
||||
Send: "Kirim Memori",
|
||||
Copy: "Salin Memori",
|
||||
Reset: "Reset",
|
||||
ResetConfirm:
|
||||
"Jika Anda mereset, riwayat obrolan saat ini dan memori historis akan dihapus. Apakah Anda yakin ingin melakukan reset?",
|
||||
},
|
||||
Home: {
|
||||
NewChat: "Obrolan Baru",
|
||||
DeleteChat: "Anda yakin ingin menghapus percakapan yang dipilih?",
|
||||
DeleteToast: "Percakapan telah dihapus",
|
||||
Revert: "Kembali",
|
||||
},
|
||||
Settings: {
|
||||
Title: "Pengaturan",
|
||||
SubTitle: "Semua Pengaturan",
|
||||
Danger: {
|
||||
Reset: {
|
||||
Title: "Setel Ulang Semua Pengaturan",
|
||||
SubTitle: "Mengembalikan semua pengaturan ke nilai default",
|
||||
Action: "Setel Ulang",
|
||||
Confirm:
|
||||
"Anda yakin ingin mengembalikan semua pengaturan ke nilai default?",
|
||||
},
|
||||
Clear: {
|
||||
Title: "Hapus Semua Data",
|
||||
SubTitle: "Semua data yang tersimpan secara lokal akan dihapus",
|
||||
Action: "Hapus",
|
||||
Confirm:
|
||||
"Apakah Anda yakin ingin menghapus semua data yang tersimpan secara lokal?",
|
||||
},
|
||||
},
|
||||
Lang: {
|
||||
Name: "Bahasa", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language`
|
||||
All: "Semua Bahasa",
|
||||
},
|
||||
Avatar: "Avatar",
|
||||
FontSize: {
|
||||
Title: "Ukuran Font",
|
||||
SubTitle: "Ubah ukuran font konten chat",
|
||||
},
|
||||
InjectSystemPrompts: {
|
||||
Title: "Suntikkan Petunjuk Sistem",
|
||||
SubTitle:
|
||||
"Tambahkan petunjuk simulasi sistem ChatGPT di awal daftar pesan yang diminta dalam setiap permintaan",
|
||||
},
|
||||
InputTemplate: {
|
||||
Title: "Template Input",
|
||||
SubTitle: "Pesan baru akan diisi menggunakan template ini",
|
||||
},
|
||||
|
||||
Update: {
|
||||
Version: (x: string) => `Version: ${x}`,
|
||||
IsLatest: "Versi terbaru",
|
||||
CheckUpdate: "Periksa Pembaruan",
|
||||
IsChecking: "Memeriksa pembaruan...",
|
||||
FoundUpdate: (x: string) => `Versi terbaru ditemukan: ${x}`,
|
||||
GoToUpdate: "Perbarui Sekarang",
|
||||
},
|
||||
AutoGenerateTitle: {
|
||||
Title: "Hasilkan Judul Otomatis",
|
||||
SubTitle: "Hasilkan judul yang sesuai berdasarkan konten percakapan",
|
||||
},
|
||||
Sync: {
|
||||
CloudState: "Pembaruan Terakhir",
|
||||
NotSyncYet: "Belum disinkronkan",
|
||||
Success: "Sinkronisasi Berhasil",
|
||||
Fail: "Sinkronisasi Gagal",
|
||||
|
||||
Config: {
|
||||
Modal: {
|
||||
Title: "Konfigurasi Sinkronisasi",
|
||||
},
|
||||
SyncType: {
|
||||
Title: "Tipe Sinkronisasi",
|
||||
SubTitle: "Pilih layanan sinkronisasi favorit Anda",
|
||||
},
|
||||
Proxy: {
|
||||
Title: "Aktifkan Proxy CORS",
|
||||
SubTitle:
|
||||
"Aktifkan Proxy untuk menghindari pembatasan atau pemblokiran lintas sumber",
|
||||
},
|
||||
ProxyUrl: {
|
||||
Title: "Lokasi Titik Akhir Proxy CORS",
|
||||
SubTitle: "Hanya berlaku untuk Proxy CORS bawaan untuk proyek ini",
|
||||
},
|
||||
|
||||
WebDav: {
|
||||
Endpoint: "Lokasi Titik Akhir WebDAV",
|
||||
UserName: "User Pengguna",
|
||||
Password: "Kata Sandi",
|
||||
},
|
||||
},
|
||||
},
|
||||
SendKey: "Kirim",
|
||||
Theme: "Tema",
|
||||
TightBorder: "Batas Ketat",
|
||||
SendPreviewBubble: {
|
||||
Title: "Pratinjau Obrolan",
|
||||
SubTitle: "Pratinjau Obrolan dengan markdown",
|
||||
},
|
||||
Mask: {
|
||||
Splash: {
|
||||
Title: "Layar Pembuka Masks",
|
||||
SubTitle:
|
||||
"Tampilkan layar pembuka masks sebelum memulai percakapan baru",
|
||||
},
|
||||
Builtin: {
|
||||
Title: "Sembunyikan Masks Bawaan",
|
||||
SubTitle: "Sembunyikan Masks bawaan dari daftar masks",
|
||||
},
|
||||
},
|
||||
Prompt: {
|
||||
Disable: {
|
||||
Title: "Nonaktifkan Otomatisasi",
|
||||
SubTitle: "Aktifkan/Matikan otomatisasi",
|
||||
},
|
||||
List: "Daftar Prompt",
|
||||
ListCount: (builtin: number, custom: number) =>
|
||||
`${builtin} bawaan, ${custom} penggunaan khusus`,
|
||||
Edit: "Edit",
|
||||
Modal: {
|
||||
Title: "Daftar Prompt",
|
||||
Add: "Tambahkan",
|
||||
Search: "Cari Prompt",
|
||||
},
|
||||
EditModal: {
|
||||
Title: "Edit Prompt",
|
||||
},
|
||||
},
|
||||
HistoryCount: {
|
||||
Title: "Jumlah Pesan Riwayat",
|
||||
SubTitle: "Jumlah pesan yang akan dikirim setiap permintaan",
|
||||
},
|
||||
CompressThreshold: {
|
||||
Title: "Batas Kompresi Riwayat",
|
||||
SubTitle:
|
||||
"Jika panjang pesan melebihi batas yang ditentukan, pesan tersebut akan dikompresi",
|
||||
},
|
||||
Token: {
|
||||
Title: "Kunci API",
|
||||
SubTitle: "Gunakan kunci Anda untuk melewati batas kode akses",
|
||||
Placeholder: "Kunci API OpenAI",
|
||||
},
|
||||
Usage: {
|
||||
Title: "Saldo Akun",
|
||||
SubTitle(used: any, total: any) {
|
||||
return `Digunakan bulan ini: ${used}, total langganan: ${total}`;
|
||||
},
|
||||
IsChecking: "Memeriksa...",
|
||||
Check: "Periksa",
|
||||
NoAccess: "Masukkan kunci API untuk memeriksa saldo",
|
||||
},
|
||||
AccessCode: {
|
||||
Title: "Kode Akses",
|
||||
SubTitle: "Kontrol akses diaktifkan",
|
||||
Placeholder: "Diperlukan kode akses",
|
||||
},
|
||||
Endpoint: {
|
||||
Title: "Endpoint",
|
||||
SubTitle: "Harus dimulai dengan http(s):// untuk endpoint kustom",
|
||||
},
|
||||
Model: "Model",
|
||||
Temperature: {
|
||||
Title: "Suhu",
|
||||
SubTitle: "Semakin tinggi nilainya, semakin acak keluarannya",
|
||||
},
|
||||
TopP: {
|
||||
Title: "Top P",
|
||||
SubTitle: "Tidak mengubah nilai dengan suhu",
|
||||
},
|
||||
MaxTokens: {
|
||||
Title: "Token Maksimum",
|
||||
SubTitle: "Panjang maksimum token input dan output",
|
||||
},
|
||||
PresencePenalty: {
|
||||
Title: "Penalti Kehadiran",
|
||||
SubTitle: "Semakin tinggi nilai, semakin mungkin topik baru muncul",
|
||||
},
|
||||
FrequencyPenalty: {
|
||||
Title: "Penalti Frekuensi",
|
||||
SubTitle:
|
||||
"Semakin tinggi nilai, semakin rendah kemungkinan penggunaan ulang baris yang sama",
|
||||
},
|
||||
},
|
||||
Store: {
|
||||
DefaultTopic: "Percakapan Baru",
|
||||
BotHello: "Halo! Bagaimana saya bisa membantu Anda hari ini?",
|
||||
Error: "Terjadi kesalahan, silakan coba lagi nanti.",
|
||||
Prompt: {
|
||||
History: (content: string) =>
|
||||
"Ini adalah ringkasan singkat dari riwayat percakapan: " + content,
|
||||
Topic:
|
||||
"Buat judul berisi empat hingga lima kata untuk percakapan kita yang tidak akan disertakan dalam ringkasan percakapan, seperti instruksi, format, kutipan, tanda baca awal, tanda kutip pendahuluan, atau karakter tambahan. Silakan coba dengan kutipan berakhir.",
|
||||
Summarize:
|
||||
"Buat ringkasan percakapan dalam 200 kata yang akan digunakan sebagai promp di masa depan.",
|
||||
},
|
||||
},
|
||||
Copy: {
|
||||
Success: "Tersalin ke clipboard",
|
||||
Failed:
|
||||
"Gagal menyalin, mohon berikan izin untuk mengakses clipboard atau Clipboard API tidak didukung (Tauri)",
|
||||
},
|
||||
Download: {
|
||||
Success: "Konten berhasil diunduh ke direktori Anda.",
|
||||
Failed: "Unduhan gagal.",
|
||||
},
|
||||
Context: {
|
||||
Toast: (x: any) => `Dengan ${x} promp kontekstual`,
|
||||
Edit: "Pengaturan Obrolan Saat Ini",
|
||||
Add: "Tambahkan Promp",
|
||||
Clear: "Bersihkan Konteks",
|
||||
Revert: "Kembali ke Posisi Sebelumnya",
|
||||
},
|
||||
Plugin: {
|
||||
Name: "Plugin",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "Anda adalah asisten yang",
|
||||
},
|
||||
Mask: {
|
||||
Name: "Masks",
|
||||
Page: {
|
||||
Title: "Template Promp",
|
||||
SubTitle: (count: number) => `${count} template prompt`,
|
||||
Search: "Cari template",
|
||||
Create: "Buat",
|
||||
},
|
||||
Item: {
|
||||
Info: (count: number) => `${count} prompt`,
|
||||
Chat: "Obrolan",
|
||||
View: "Lihat",
|
||||
Edit: "Edit",
|
||||
Delete: "Hapus",
|
||||
DeleteConfirm: "Anda yakin ingin menghapus?",
|
||||
},
|
||||
EditModal: {
|
||||
Title: (readonly: boolean) =>
|
||||
`Edit Template Prompt ${readonly ? "(hanya baca)" : ""}`,
|
||||
Download: "Unduh",
|
||||
Clone: "Duplikat",
|
||||
},
|
||||
Config: {
|
||||
Avatar: "Avatar Bot",
|
||||
Name: "Nama Bot",
|
||||
Sync: {
|
||||
Title: "Gunakan Konfigurasi Global",
|
||||
SubTitle: "Gunakan konfigurasi global dalam percakapan ini",
|
||||
Confirm:
|
||||
"Pastikan untuk mengganti konfigurasi kustom dengan konfigurasi global?",
|
||||
},
|
||||
HideContext: {
|
||||
Title: "Sembunyikan Prompt Konteks",
|
||||
SubTitle: "Tidak menampilkan prompt konteks dalam obrolan",
|
||||
},
|
||||
Share: {
|
||||
Title: "Bagikan Masks Ini",
|
||||
SubTitle: "Buat tautan untuk masks ini",
|
||||
Action: "Salin Tautan",
|
||||
},
|
||||
},
|
||||
},
|
||||
NewChat: {
|
||||
Return: "Kembali",
|
||||
Skip: "Lewati",
|
||||
Title: "Pilih Masks",
|
||||
SubTitle: "Berkonversasilah dengan diri Anda di balik masks",
|
||||
More: "Lebih Lanjut",
|
||||
NotShow: "Jangan Tampilkan Sekarang",
|
||||
ConfirmNoShow:
|
||||
"Pastikan untuk menonaktifkannya? Anda dapat mengaktifkannya nanti melalui pengaturan.",
|
||||
},
|
||||
|
||||
UI: {
|
||||
Confirm: "Konfirmasi",
|
||||
Cancel: "Batal",
|
||||
Close: "Tutup",
|
||||
Create: "Buat",
|
||||
Edit: "Edit",
|
||||
},
|
||||
Exporter: {
|
||||
Model: "Model",
|
||||
Messages: "Pesan",
|
||||
Topic: "Topik",
|
||||
Time: "Tanggal & Waktu",
|
||||
},
|
||||
URLCommand: {
|
||||
Code: "Kode akses terdeteksi dari url, konfirmasi untuk mendaftar ? ",
|
||||
Settings: "Pengaturan terdeteksi dari url, konfirmasi untuk diterapkan ?",
|
||||
},
|
||||
};
|
||||
|
||||
export default id;
|
||||
@@ -1,6 +1,7 @@
|
||||
import cn from "./cn";
|
||||
import en from "./en";
|
||||
import tw from "./tw";
|
||||
import id from "./id";
|
||||
import fr from "./fr";
|
||||
import es from "./es";
|
||||
import it from "./it";
|
||||
@@ -25,6 +26,7 @@ const ALL_LANGS = {
|
||||
tw,
|
||||
jp,
|
||||
ko,
|
||||
id,
|
||||
fr,
|
||||
es,
|
||||
it,
|
||||
@@ -48,6 +50,7 @@ export const ALL_LANG_OPTIONS: Record<Lang, string> = {
|
||||
tw: "繁體中文",
|
||||
jp: "日本語",
|
||||
ko: "한국어",
|
||||
id: "Indonesia",
|
||||
fr: "Français",
|
||||
es: "Español",
|
||||
it: "Italiano",
|
||||
|
||||
@@ -191,6 +191,9 @@ const it: PartialLocaleType = {
|
||||
Plugin: {
|
||||
Name: "Plugin",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "Sei un assistente che",
|
||||
},
|
||||
Mask: {
|
||||
Name: "Mask",
|
||||
Page: {
|
||||
|
||||
@@ -19,7 +19,11 @@ const jp: PartialLocaleType = {
|
||||
Copy: "コピー",
|
||||
Stop: "停止",
|
||||
Retry: "リトライ",
|
||||
Pin: "ピン",
|
||||
PinToastContent: "コンテキストプロンプトに1つのメッセージをピン留めしました",
|
||||
PinToastAction: "表示",
|
||||
Delete: "削除",
|
||||
Edit: "編集",
|
||||
},
|
||||
Rename: "チャットの名前を変更",
|
||||
Typing: "入力中…",
|
||||
@@ -33,7 +37,7 @@ const jp: PartialLocaleType = {
|
||||
Send: "送信",
|
||||
Config: {
|
||||
Reset: "リセット",
|
||||
SaveAs: "另存为面具",
|
||||
SaveAs: "保存",
|
||||
},
|
||||
},
|
||||
Export: {
|
||||
@@ -204,6 +208,7 @@ const jp: PartialLocaleType = {
|
||||
Add: "追加",
|
||||
},
|
||||
Plugin: { Name: "プラグイン" },
|
||||
FineTuned: { Sysmessage: "あなたはアシスタントです" },
|
||||
Mask: {
|
||||
Name: "キャラクタープリセット",
|
||||
Page: {
|
||||
|
||||
@@ -186,6 +186,9 @@ const ko: PartialLocaleType = {
|
||||
Plugin: {
|
||||
Name: "플러그인",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "당신은 어시스턴트입니다",
|
||||
},
|
||||
Mask: {
|
||||
Name: "마스크",
|
||||
Page: {
|
||||
|
||||
@@ -191,6 +191,9 @@ const ru: PartialLocaleType = {
|
||||
Plugin: {
|
||||
Name: "Плагин",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "Вы - ассистент, который",
|
||||
},
|
||||
Mask: {
|
||||
Name: "Маска",
|
||||
Page: {
|
||||
|
||||
@@ -191,6 +191,9 @@ const tr: PartialLocaleType = {
|
||||
Plugin: {
|
||||
Name: "Plugin",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "Sen bir asistansın",
|
||||
},
|
||||
Mask: {
|
||||
Name: "Mask",
|
||||
Page: {
|
||||
|
||||
@@ -7,32 +7,32 @@ const tw: PartialLocaleType = {
|
||||
Unauthorized: "目前您的狀態是未授權,請前往[設定頁面](/#/auth)輸入授權碼。",
|
||||
},
|
||||
ChatItem: {
|
||||
ChatItemCount: (count: number) => `${count} 條對話`,
|
||||
ChatItemCount: (count: number) => `${count} 則對話`,
|
||||
},
|
||||
Chat: {
|
||||
SubTitle: (count: number) => `您已經與 SoulShellGPT 進行了 ${count} 條對話`,
|
||||
SubTitle: (count: number) => `您已經與 ChatGPT 進行了 ${count} 則對話`,
|
||||
Actions: {
|
||||
ChatList: "查看訊息列表",
|
||||
CompressedHistory: "查看壓縮後的歷史 Prompt",
|
||||
ChatList: "檢視訊息列表",
|
||||
CompressedHistory: "檢視壓縮後的歷史 Prompt",
|
||||
Export: "匯出聊天紀錄",
|
||||
Copy: "複製",
|
||||
Stop: "停止",
|
||||
Retry: "重試",
|
||||
Delete: "刪除",
|
||||
},
|
||||
Rename: "重命名對話",
|
||||
Rename: "重新命名對話",
|
||||
Typing: "正在輸入…",
|
||||
Input: (submitKey: string) => {
|
||||
var inputHints = `輸入訊息後,按下 ${submitKey} 鍵即可發送`;
|
||||
var inputHints = `輸入訊息後,按下 ${submitKey} 鍵即可傳送`;
|
||||
if (submitKey === String(SubmitKey.Enter)) {
|
||||
inputHints += ",Shift + Enter 鍵換行";
|
||||
}
|
||||
return inputHints;
|
||||
},
|
||||
Send: "發送",
|
||||
Send: "傳送",
|
||||
Config: {
|
||||
Reset: "重置默认",
|
||||
SaveAs: "另存为面具",
|
||||
Reset: "重設",
|
||||
SaveAs: "另存新檔",
|
||||
},
|
||||
},
|
||||
Export: {
|
||||
@@ -46,7 +46,7 @@ const tw: PartialLocaleType = {
|
||||
Title: "上下文記憶 Prompt",
|
||||
EmptyContent: "尚未記憶",
|
||||
Copy: "複製全部",
|
||||
Send: "發送記憶",
|
||||
Send: "傳送記憶",
|
||||
Reset: "重設對話",
|
||||
ResetConfirm: "重設後將清除目前對話記錄以及歷史記憶,確認重設?",
|
||||
},
|
||||
@@ -62,7 +62,7 @@ const tw: PartialLocaleType = {
|
||||
|
||||
Lang: {
|
||||
Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language`
|
||||
All: "所有语言",
|
||||
All: "所有語言",
|
||||
},
|
||||
Avatar: "大頭貼",
|
||||
FontSize: {
|
||||
@@ -70,28 +70,28 @@ const tw: PartialLocaleType = {
|
||||
SubTitle: "聊天內容的字型大小",
|
||||
},
|
||||
InjectSystemPrompts: {
|
||||
Title: "注入系統提示",
|
||||
SubTitle: "強制在每個請求的訊息列表開頭添加一個模擬 ChatGPT 的系統提示",
|
||||
Title: "匯入系統提示",
|
||||
SubTitle: "強制在每個請求的訊息列表開頭新增一個模擬 ChatGPT 的系統提示",
|
||||
},
|
||||
Update: {
|
||||
Version: (x: string) => `當前版本:${x}`,
|
||||
Version: (x: string) => `目前版本:${x}`,
|
||||
IsLatest: "已是最新版本",
|
||||
CheckUpdate: "檢查更新",
|
||||
IsChecking: "正在檢查更新...",
|
||||
FoundUpdate: (x: string) => `發現新版本:${x}`,
|
||||
GoToUpdate: "前往更新",
|
||||
},
|
||||
SendKey: "發送鍵",
|
||||
SendKey: "傳送鍵",
|
||||
Theme: "主題",
|
||||
TightBorder: "緊湊邊框",
|
||||
SendPreviewBubble: {
|
||||
Title: "預覽氣泡",
|
||||
SubTitle: "在预览气泡中预览 Markdown 内容",
|
||||
SubTitle: "在預覽氣泡中預覽 Markdown 內容",
|
||||
},
|
||||
Mask: {
|
||||
Splash: {
|
||||
Title: "面具启动页",
|
||||
SubTitle: "新建聊天时,展示面具启动页",
|
||||
Title: "面具啟動頁面",
|
||||
SubTitle: "新增聊天時,呈現面具啟動頁面",
|
||||
},
|
||||
},
|
||||
Prompt: {
|
||||
@@ -101,7 +101,7 @@ const tw: PartialLocaleType = {
|
||||
},
|
||||
List: "自定義提示詞列表",
|
||||
ListCount: (builtin: number, custom: number) =>
|
||||
`內建 ${builtin} 條,用戶定義 ${custom} 條`,
|
||||
`內建 ${builtin} 條,使用者定義 ${custom} 條`,
|
||||
Edit: "編輯",
|
||||
Modal: {
|
||||
Title: "提示詞列表",
|
||||
@@ -109,7 +109,7 @@ const tw: PartialLocaleType = {
|
||||
Search: "搜尋提示詞",
|
||||
},
|
||||
EditModal: {
|
||||
Title: "编辑提示词",
|
||||
Title: "編輯提示詞",
|
||||
},
|
||||
},
|
||||
HistoryCount: {
|
||||
@@ -132,7 +132,7 @@ const tw: PartialLocaleType = {
|
||||
},
|
||||
IsChecking: "正在檢查…",
|
||||
Check: "重新檢查",
|
||||
NoAccess: "輸入API Key查看餘額",
|
||||
NoAccess: "輸入 API Key 檢視餘額",
|
||||
},
|
||||
AccessCode: {
|
||||
Title: "授權碼",
|
||||
@@ -150,7 +150,7 @@ const tw: PartialLocaleType = {
|
||||
},
|
||||
PresencePenalty: {
|
||||
Title: "話題新穎度 (presence_penalty)",
|
||||
SubTitle: "值越大,越有可能擴展到新話題",
|
||||
SubTitle: "值越大,越有可能拓展到新話題",
|
||||
},
|
||||
FrequencyPenalty: {
|
||||
Title: "頻率懲罰度 (frequency_penalty)",
|
||||
@@ -163,7 +163,7 @@ const tw: PartialLocaleType = {
|
||||
Error: "出錯了,請稍後再嘗試",
|
||||
Prompt: {
|
||||
History: (content: string) =>
|
||||
"這是 AI 與用戶的歷史聊天總結,作為前情提要:" + content,
|
||||
"這是 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:
|
||||
@@ -179,53 +179,54 @@ const tw: PartialLocaleType = {
|
||||
Edit: "前置上下文和歷史記憶",
|
||||
Add: "新增一條",
|
||||
},
|
||||
Plugin: { Name: "插件" },
|
||||
Plugin: { Name: "外掛" },
|
||||
FineTuned: { Sysmessage: "你是一個助手" },
|
||||
Mask: {
|
||||
Name: "面具",
|
||||
Page: {
|
||||
Title: "预设角色面具",
|
||||
SubTitle: (count: number) => `${count} 个预设角色定义`,
|
||||
Search: "搜索角色面具",
|
||||
Create: "新建",
|
||||
Title: "預設角色面具",
|
||||
SubTitle: (count: number) => `${count} 個預設角色定義`,
|
||||
Search: "搜尋角色面具",
|
||||
Create: "新增",
|
||||
},
|
||||
Item: {
|
||||
Info: (count: number) => `包含 ${count} 条预设对话`,
|
||||
Chat: "对话",
|
||||
View: "查看",
|
||||
Edit: "编辑",
|
||||
Delete: "删除",
|
||||
DeleteConfirm: "确认删除?",
|
||||
Info: (count: number) => `包含 ${count} 條預設對話`,
|
||||
Chat: "對話",
|
||||
View: "檢視",
|
||||
Edit: "編輯",
|
||||
Delete: "刪除",
|
||||
DeleteConfirm: "確認刪除?",
|
||||
},
|
||||
EditModal: {
|
||||
Title: (readonly: boolean) =>
|
||||
`编辑预设面具 ${readonly ? "(只读)" : ""}`,
|
||||
Download: "下载预设",
|
||||
Clone: "克隆预设",
|
||||
`編輯預設面具 ${readonly ? "(只讀)" : ""}`,
|
||||
Download: "下載預設",
|
||||
Clone: "複製預設",
|
||||
},
|
||||
Config: {
|
||||
Avatar: "角色头像",
|
||||
Name: "角色名称",
|
||||
Avatar: "角色頭像",
|
||||
Name: "角色名稱",
|
||||
},
|
||||
},
|
||||
NewChat: {
|
||||
Return: "返回",
|
||||
Skip: "跳过",
|
||||
Title: "挑选一个面具",
|
||||
SubTitle: "现在开始,与面具背后的灵魂思维碰撞",
|
||||
More: "搜索更多",
|
||||
NotShow: "不再展示",
|
||||
ConfirmNoShow: "确认禁用?禁用后可以随时在设置中重新启用。",
|
||||
Skip: "跳過",
|
||||
Title: "挑選一個面具",
|
||||
SubTitle: "現在開始,與面具背後的靈魂思維碰撞",
|
||||
More: "搜尋更多",
|
||||
NotShow: "不再呈現",
|
||||
ConfirmNoShow: "確認停用?停用後可以隨時在設定中重新啟用。",
|
||||
},
|
||||
UI: {
|
||||
Confirm: "确认",
|
||||
Confirm: "確認",
|
||||
Cancel: "取消",
|
||||
Close: "关闭",
|
||||
Create: "新建",
|
||||
Edit: "编辑",
|
||||
Close: "關閉",
|
||||
Create: "新增",
|
||||
Edit: "編輯",
|
||||
},
|
||||
Exporter: {
|
||||
Model: "模型",
|
||||
Messages: "消息",
|
||||
Messages: "訊息",
|
||||
Topic: "主題",
|
||||
Time: "時間",
|
||||
},
|
||||
|
||||
@@ -186,6 +186,9 @@ const vi: PartialLocaleType = {
|
||||
Plugin: {
|
||||
Name: "Plugin",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "Bạn là một trợ lý",
|
||||
},
|
||||
Mask: {
|
||||
Name: "Mẫu",
|
||||
Page: {
|
||||
|
||||
Reference in New Issue
Block a user