mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-11 08:19:01 +08:00
feat(i18n): add careers section to AboutSettings and update translations
- Updated package.json to remove redundant i18n:check command. - Added a "careers" section in the AboutSettings component with a button linking to the careers page. - Introduced translations for the "careers" section in multiple languages including English, Chinese, German, Spanish, French, Japanese, Portuguese, Romanian, and Russian. - Updated cache-related translations across various languages to provide localized support.
This commit is contained in:
parent
864eda68fb
commit
8ab082ceb5
@ -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",
|
||||
|
||||
@ -3115,6 +3115,10 @@
|
||||
},
|
||||
"settings": {
|
||||
"about": {
|
||||
"careers": {
|
||||
"button": "View",
|
||||
"title": "Careers"
|
||||
},
|
||||
"checkUpdate": {
|
||||
"available": "Update",
|
||||
"label": "Check Update"
|
||||
|
||||
@ -3115,6 +3115,10 @@
|
||||
},
|
||||
"settings": {
|
||||
"about": {
|
||||
"careers": {
|
||||
"button": "查看",
|
||||
"title": "加入我们"
|
||||
},
|
||||
"checkUpdate": {
|
||||
"available": "立即更新",
|
||||
"label": "检查更新"
|
||||
|
||||
@ -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 類型",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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": "Εάν ο πάροχος υποστηρίζει το πεδίο περιεχομένου του μηνύματος ως τύπο πίνακα",
|
||||
|
||||
@ -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?",
|
||||
|
||||
@ -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 ?",
|
||||
|
||||
@ -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 フィールドが配列型であることをサポートしていますか",
|
||||
|
||||
@ -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?",
|
||||
|
||||
@ -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?",
|
||||
|
||||
@ -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 в сообщении",
|
||||
|
||||
@ -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 = () => {
|
||||
<Button onClick={mailto}>{t('settings.about.contact.button')}</Button>
|
||||
</SettingRow>
|
||||
<SettingDivider />
|
||||
<SettingRow>
|
||||
<SettingRowTitle>
|
||||
<Briefcase size={18} />
|
||||
{t('settings.about.careers.title')}
|
||||
</SettingRowTitle>
|
||||
<Button onClick={() => onOpenWebsite('https://www.cherry-ai.com/careers')}>
|
||||
{t('settings.about.careers.button')}
|
||||
</Button>
|
||||
</SettingRow>
|
||||
<SettingDivider />
|
||||
<SettingRow>
|
||||
<SettingRowTitle>
|
||||
<Bug size={18} />
|
||||
|
||||
Loading…
Reference in New Issue
Block a user