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')} + + + +