diff --git a/package.json b/package.json
index c55246b7e9..acf6f9063e 100644
--- a/package.json
+++ b/package.json
@@ -42,7 +42,7 @@
"i18n:check": "dotenv -e .env -- tsx scripts/check-i18n.ts",
"i18n:sync": "dotenv -e .env -- tsx scripts/sync-i18n.ts",
"i18n:translate": "dotenv -e .env -- tsx scripts/auto-translate-i18n.ts",
- "i18n:all": "pnpm i18n:check && pnpm i18n:sync && pnpm i18n:translate",
+ "i18n:all": "pnpm i18n:sync && pnpm i18n:translate",
"update:languages": "tsx scripts/update-languages.ts",
"update:upgrade-config": "tsx scripts/update-app-upgrade-config.ts",
"test": "vitest run --silent",
diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json
index 0632d83941..45a2222930 100644
--- a/src/renderer/src/i18n/locales/en-us.json
+++ b/src/renderer/src/i18n/locales/en-us.json
@@ -3115,6 +3115,10 @@
},
"settings": {
"about": {
+ "careers": {
+ "button": "View",
+ "title": "Careers"
+ },
"checkUpdate": {
"available": "Update",
"label": "Check Update"
diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json
index caf4e90ce6..220a109a74 100644
--- a/src/renderer/src/i18n/locales/zh-cn.json
+++ b/src/renderer/src/i18n/locales/zh-cn.json
@@ -3115,6 +3115,10 @@
},
"settings": {
"about": {
+ "careers": {
+ "button": "查看",
+ "title": "加入我们"
+ },
"checkUpdate": {
"available": "立即更新",
"label": "检查更新"
diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json
index 928d783d53..b6955adeca 100644
--- a/src/renderer/src/i18n/locales/zh-tw.json
+++ b/src/renderer/src/i18n/locales/zh-tw.json
@@ -3115,6 +3115,10 @@
},
"settings": {
"about": {
+ "careers": {
+ "button": "查看",
+ "title": "加入我們"
+ },
"checkUpdate": {
"available": "立即更新",
"label": "檢查更新"
@@ -4476,12 +4480,12 @@
},
"options": {
"anthropic_cache": {
- "cache_last_n": "[to be translated]:Cache Last N Messages",
- "cache_last_n_help": "[to be translated]:Cache the last N conversation messages (excluding system messages)",
- "cache_system": "[to be translated]:Cache System Message",
- "cache_system_help": "[to be translated]:Whether to cache the system prompt",
- "token_threshold": "[to be translated]:Cache Token Threshold",
- "token_threshold_help": "[to be translated]:Messages exceeding this token count will be cached. Set to 0 to disable caching."
+ "cache_last_n": "快取最近 N 則訊息",
+ "cache_last_n_help": "快取最後 N 則對話訊息(排除系統訊息)",
+ "cache_system": "快取系統訊息",
+ "cache_system_help": "是否快取系統提示",
+ "token_threshold": "快取權杖閾值",
+ "token_threshold_help": "超過此標記數量的訊息將被快取。設為 0 以停用快取。"
},
"array_content": {
"help": "該供應商是否支援 message 的 content 欄位為 array 類型",
diff --git a/src/renderer/src/i18n/translate/de-de.json b/src/renderer/src/i18n/translate/de-de.json
index 16680f070a..975d43835d 100644
--- a/src/renderer/src/i18n/translate/de-de.json
+++ b/src/renderer/src/i18n/translate/de-de.json
@@ -3115,6 +3115,10 @@
},
"settings": {
"about": {
+ "careers": {
+ "button": "Ansicht",
+ "title": "Karriere"
+ },
"checkUpdate": {
"available": "Jetzt aktualisieren",
"label": "Auf Updates prüfen"
@@ -4476,12 +4480,12 @@
},
"options": {
"anthropic_cache": {
- "cache_last_n": "[to be translated]:Cache Last N Messages",
- "cache_last_n_help": "[to be translated]:Cache the last N conversation messages (excluding system messages)",
- "cache_system": "[to be translated]:Cache System Message",
- "cache_system_help": "[to be translated]:Whether to cache the system prompt",
- "token_threshold": "[to be translated]:Cache Token Threshold",
- "token_threshold_help": "[to be translated]:Messages exceeding this token count will be cached. Set to 0 to disable caching."
+ "cache_last_n": "Letzte N Nachrichten zwischenspeichern",
+ "cache_last_n_help": "Zwischen die letzten N Gesprächsnachrichten (ohne Systemnachrichten) zwischenspeichern",
+ "cache_system": "Cache-Systemnachricht",
+ "cache_system_help": "Ob der System-Prompt zwischengespeichert werden soll",
+ "token_threshold": "Cache-Token-Schwellenwert",
+ "token_threshold_help": "Nachrichten, die diese Token-Anzahl überschreiten, werden zwischengespeichert. Auf 0 setzen, um das Caching zu deaktivieren."
},
"array_content": {
"help": "Unterstützt Array-Format für message content",
diff --git a/src/renderer/src/i18n/translate/el-gr.json b/src/renderer/src/i18n/translate/el-gr.json
index 137e8ad5ab..1169482dde 100644
--- a/src/renderer/src/i18n/translate/el-gr.json
+++ b/src/renderer/src/i18n/translate/el-gr.json
@@ -3115,6 +3115,10 @@
},
"settings": {
"about": {
+ "careers": {
+ "button": "Προβολή",
+ "title": "Καριέρα"
+ },
"checkUpdate": {
"available": "Άμεση ενημέρωση",
"label": "Έλεγχος ενημερώσεων"
@@ -4476,12 +4480,12 @@
},
"options": {
"anthropic_cache": {
- "cache_last_n": "[to be translated]:Cache Last N Messages",
- "cache_last_n_help": "[to be translated]:Cache the last N conversation messages (excluding system messages)",
- "cache_system": "[to be translated]:Cache System Message",
- "cache_system_help": "[to be translated]:Whether to cache the system prompt",
- "token_threshold": "[to be translated]:Cache Token Threshold",
- "token_threshold_help": "[to be translated]:Messages exceeding this token count will be cached. Set to 0 to disable caching."
+ "cache_last_n": "Κρύψτε τα τελευταία N μηνύματα",
+ "cache_last_n_help": "Αποθηκεύστε στην κρυφή μνήμη τα τελευταία N μηνύματα της συνομιλίας (εξαιρουμένων των μηνυμάτων συστήματος)",
+ "cache_system": "Μήνυμα Συστήματος Κρυφής Μνήμης",
+ "cache_system_help": "Εάν θα αποθηκευτεί προσωρινά το σύστημα εντολών",
+ "token_threshold": "Κατώφλι Διακριτικού Κρυφής Μνήμης",
+ "token_threshold_help": "Μηνύματα που υπερβαίνουν αυτό το όριο token θα αποθηκεύονται στην cache. Ορίστε το σε 0 για να απενεργοποιήσετε την προσωρινή αποθήκευση."
},
"array_content": {
"help": "Εάν ο πάροχος υποστηρίζει το πεδίο περιεχομένου του μηνύματος ως τύπο πίνακα",
diff --git a/src/renderer/src/i18n/translate/es-es.json b/src/renderer/src/i18n/translate/es-es.json
index f8721c5bba..0e27518f33 100644
--- a/src/renderer/src/i18n/translate/es-es.json
+++ b/src/renderer/src/i18n/translate/es-es.json
@@ -3115,6 +3115,10 @@
},
"settings": {
"about": {
+ "careers": {
+ "button": "Vista",
+ "title": "Carreras"
+ },
"checkUpdate": {
"available": "Actualizar ahora",
"label": "Comprobar actualizaciones"
@@ -4476,12 +4480,12 @@
},
"options": {
"anthropic_cache": {
- "cache_last_n": "[to be translated]:Cache Last N Messages",
- "cache_last_n_help": "[to be translated]:Cache the last N conversation messages (excluding system messages)",
- "cache_system": "[to be translated]:Cache System Message",
- "cache_system_help": "[to be translated]:Whether to cache the system prompt",
- "token_threshold": "[to be translated]:Cache Token Threshold",
- "token_threshold_help": "[to be translated]:Messages exceeding this token count will be cached. Set to 0 to disable caching."
+ "cache_last_n": "Caché de los últimos N mensajes",
+ "cache_last_n_help": "Almacenar en caché los últimos N mensajes de la conversación (excluyendo los mensajes del sistema)",
+ "cache_system": "Mensaje del Sistema de Caché",
+ "cache_system_help": "Si se debe almacenar en caché el mensaje del sistema",
+ "token_threshold": "Umbral de Token de Caché",
+ "token_threshold_help": "Los mensajes que superen este recuento de tokens se almacenarán en caché. Establecer en 0 para desactivar el almacenamiento en caché."
},
"array_content": {
"help": "¿Admite el proveedor que el campo content del mensaje sea de tipo array?",
diff --git a/src/renderer/src/i18n/translate/fr-fr.json b/src/renderer/src/i18n/translate/fr-fr.json
index 42bc37ad0b..a1b708d0b1 100644
--- a/src/renderer/src/i18n/translate/fr-fr.json
+++ b/src/renderer/src/i18n/translate/fr-fr.json
@@ -3115,6 +3115,10 @@
},
"settings": {
"about": {
+ "careers": {
+ "button": "Vue",
+ "title": "Carrières"
+ },
"checkUpdate": {
"available": "Mettre à jour maintenant",
"label": "Vérifier les mises à jour"
@@ -4476,12 +4480,12 @@
},
"options": {
"anthropic_cache": {
- "cache_last_n": "[to be translated]:Cache Last N Messages",
- "cache_last_n_help": "[to be translated]:Cache the last N conversation messages (excluding system messages)",
- "cache_system": "[to be translated]:Cache System Message",
- "cache_system_help": "[to be translated]:Whether to cache the system prompt",
- "token_threshold": "[to be translated]:Cache Token Threshold",
- "token_threshold_help": "[to be translated]:Messages exceeding this token count will be cached. Set to 0 to disable caching."
+ "cache_last_n": "Mettre en cache les N derniers messages",
+ "cache_last_n_help": "Mettre en cache les N derniers messages de conversation (à l’exclusion des messages système)",
+ "cache_system": "Message du système de cache",
+ "cache_system_help": "S'il faut mettre en cache l'invite système",
+ "token_threshold": "Seuil de jeton de cache",
+ "token_threshold_help": "Les messages dépassant ce nombre de jetons seront mis en cache. Mettre à 0 pour désactiver la mise en cache."
},
"array_content": {
"help": "Ce fournisseur prend-il en charge le champ content du message sous forme de tableau ?",
diff --git a/src/renderer/src/i18n/translate/ja-jp.json b/src/renderer/src/i18n/translate/ja-jp.json
index 2971e36be6..423084f5c4 100644
--- a/src/renderer/src/i18n/translate/ja-jp.json
+++ b/src/renderer/src/i18n/translate/ja-jp.json
@@ -3115,6 +3115,10 @@
},
"settings": {
"about": {
+ "careers": {
+ "button": "表示",
+ "title": "キャリア"
+ },
"checkUpdate": {
"available": "今すぐ更新",
"label": "更新を確認"
@@ -4476,12 +4480,12 @@
},
"options": {
"anthropic_cache": {
- "cache_last_n": "[to be translated]:Cache Last N Messages",
- "cache_last_n_help": "[to be translated]:Cache the last N conversation messages (excluding system messages)",
- "cache_system": "[to be translated]:Cache System Message",
- "cache_system_help": "[to be translated]:Whether to cache the system prompt",
- "token_threshold": "[to be translated]:Cache Token Threshold",
- "token_threshold_help": "[to be translated]:Messages exceeding this token count will be cached. Set to 0 to disable caching."
+ "cache_last_n": "最後のN件のメッセージをキャッシュ",
+ "cache_last_n_help": "最後のN件の会話メッセージをキャッシュする(システムメッセージは除く)",
+ "cache_system": "キャッシュシステムメッセージ",
+ "cache_system_help": "システムプロンプトをキャッシュするかどうか",
+ "token_threshold": "キャッシュトークン閾値",
+ "token_threshold_help": "このトークン数を超えるメッセージはキャッシュされます。キャッシュを無効にするには0を設定してください。"
},
"array_content": {
"help": "このプロバイダーは、message の content フィールドが配列型であることをサポートしていますか",
diff --git a/src/renderer/src/i18n/translate/pt-pt.json b/src/renderer/src/i18n/translate/pt-pt.json
index 633ce438cb..035bc92753 100644
--- a/src/renderer/src/i18n/translate/pt-pt.json
+++ b/src/renderer/src/i18n/translate/pt-pt.json
@@ -3115,6 +3115,10 @@
},
"settings": {
"about": {
+ "careers": {
+ "button": "Visualizar",
+ "title": "Carreiras"
+ },
"checkUpdate": {
"available": "Atualizar agora",
"label": "Verificar atualizações"
@@ -4476,12 +4480,12 @@
},
"options": {
"anthropic_cache": {
- "cache_last_n": "[to be translated]:Cache Last N Messages",
- "cache_last_n_help": "[to be translated]:Cache the last N conversation messages (excluding system messages)",
- "cache_system": "[to be translated]:Cache System Message",
- "cache_system_help": "[to be translated]:Whether to cache the system prompt",
- "token_threshold": "[to be translated]:Cache Token Threshold",
- "token_threshold_help": "[to be translated]:Messages exceeding this token count will be cached. Set to 0 to disable caching."
+ "cache_last_n": "Cache Últimas N Mensagens",
+ "cache_last_n_help": "Armazenar em cache as últimas N mensagens da conversa (excluindo mensagens do sistema)",
+ "cache_system": "Mensagem do Sistema de Cache",
+ "cache_system_help": "Se deve armazenar em cache o prompt do sistema",
+ "token_threshold": "Limite de Token de Cache",
+ "token_threshold_help": "Mensagens que excederem essa contagem de tokens serão armazenadas em cache. Defina como 0 para desativar o cache."
},
"array_content": {
"help": "O fornecedor suporta que o campo content da mensagem seja do tipo array?",
diff --git a/src/renderer/src/i18n/translate/ro-ro.json b/src/renderer/src/i18n/translate/ro-ro.json
index ae05e564fe..fb45d9c647 100644
--- a/src/renderer/src/i18n/translate/ro-ro.json
+++ b/src/renderer/src/i18n/translate/ro-ro.json
@@ -3115,6 +3115,10 @@
},
"settings": {
"about": {
+ "careers": {
+ "button": "Vedere",
+ "title": "Carieră"
+ },
"checkUpdate": {
"available": "Actualizare",
"label": "Verifică actualizări"
@@ -4476,12 +4480,12 @@
},
"options": {
"anthropic_cache": {
- "cache_last_n": "[to be translated]:Cache Last N Messages",
- "cache_last_n_help": "[to be translated]:Cache the last N conversation messages (excluding system messages)",
- "cache_system": "[to be translated]:Cache System Message",
- "cache_system_help": "[to be translated]:Whether to cache the system prompt",
- "token_threshold": "[to be translated]:Cache Token Threshold",
- "token_threshold_help": "[to be translated]:Messages exceeding this token count will be cached. Set to 0 to disable caching."
+ "cache_last_n": "Cache Ultimelor N Mesaje",
+ "cache_last_n_help": "Stochează ultimele N mesaje din conversație (excluzând mesajele de sistem)",
+ "cache_system": "Mesaj de sistem Cache",
+ "cache_system_help": "Dacă să se memoreze în cache promptul de sistem",
+ "token_threshold": "Prag de Token Cache",
+ "token_threshold_help": "Mesajele care depășesc acest număr de tokeni vor fi memorate în cache. Setați la 0 pentru a dezactiva memorarea în cache."
},
"array_content": {
"help": "Furnizorul acceptă ca câmpul content al mesajului să fie de tip array?",
diff --git a/src/renderer/src/i18n/translate/ru-ru.json b/src/renderer/src/i18n/translate/ru-ru.json
index 320ecb4741..e1c7135834 100644
--- a/src/renderer/src/i18n/translate/ru-ru.json
+++ b/src/renderer/src/i18n/translate/ru-ru.json
@@ -1311,7 +1311,6 @@
"backup": {
"file_format": "Ошибка формата файла резервной копии"
},
- "base64DataTruncated": "[to be translated]:Base64 image data truncated, size",
"base64DataTruncated": "Данные изображения в формате Base64 усечены, размер",
"boundary": {
"default": {
@@ -1393,9 +1392,7 @@
"text": "текст",
"toolInput": "ввод инструмента",
"toolName": "имя инструмента",
- "truncated": "[to be translated]:Data truncated, original size",
"truncated": "Данные усечены, исходный размер",
- "truncatedBadge": "[to be translated]:Truncated",
"truncatedBadge": "Усечённый",
"unknown": "Неизвестная ошибка",
"usage": "Дозировка",
@@ -3118,6 +3115,10 @@
},
"settings": {
"about": {
+ "careers": {
+ "button": "Вид",
+ "title": "Карьера"
+ },
"checkUpdate": {
"available": "Обновить",
"label": "Проверить обновления"
@@ -4479,12 +4480,12 @@
},
"options": {
"anthropic_cache": {
- "cache_last_n": "[to be translated]:Cache Last N Messages",
- "cache_last_n_help": "[to be translated]:Cache the last N conversation messages (excluding system messages)",
- "cache_system": "[to be translated]:Cache System Message",
- "cache_system_help": "[to be translated]:Whether to cache the system prompt",
- "token_threshold": "[to be translated]:Cache Token Threshold",
- "token_threshold_help": "[to be translated]:Messages exceeding this token count will be cached. Set to 0 to disable caching."
+ "cache_last_n": "Кэшировать последние N сообщений",
+ "cache_last_n_help": "Кэшировать последние N сообщений разговора (исключая системные сообщения)",
+ "cache_system": "Сообщение системы кэша",
+ "cache_system_help": "Кэшировать ли системный промпт",
+ "token_threshold": "Порог токена кэша",
+ "token_threshold_help": "Сообщения, превышающие это количество токенов, будут кэшироваться. Установите значение 0, чтобы отключить кэширование."
},
"array_content": {
"help": "Поддерживает ли данный провайдер тип массива для поля content в сообщении",
diff --git a/src/renderer/src/pages/settings/AboutSettings.tsx b/src/renderer/src/pages/settings/AboutSettings.tsx
index 1765f1fbda..105ad5b0c8 100644
--- a/src/renderer/src/pages/settings/AboutSettings.tsx
+++ b/src/renderer/src/pages/settings/AboutSettings.tsx
@@ -15,7 +15,7 @@ import { runAsyncFunction } from '@renderer/utils'
import { UpgradeChannel } from '@shared/config/constant'
import { Avatar, Button, Progress, Radio, Row, Switch, Tag, Tooltip } from 'antd'
import { debounce } from 'lodash'
-import { Bug, Building2, Github, Globe, Mail, Rss } from 'lucide-react'
+import { Briefcase, Bug, Building2, Github, Globe, Mail, Rss } from 'lucide-react'
import { BadgeQuestionMark } from 'lucide-react'
import type { FC } from 'react'
import { useEffect, useState } from 'react'
@@ -327,6 +327,16 @@ const AboutSettings: FC = () => {
+
+
+
+ {t('settings.about.careers.title')}
+
+
+
+