diff --git a/src/renderer/src/pages/agents/AgentsPage.tsx b/src/renderer/src/pages/agents/AgentsPage.tsx index 86fb456db5..2677f957fa 100644 --- a/src/renderer/src/pages/agents/AgentsPage.tsx +++ b/src/renderer/src/pages/agents/AgentsPage.tsx @@ -44,16 +44,23 @@ const AgentsPage: FC = () => { const { t, i18n } = useTranslation() const filteredAgentGroups = useMemo(() => { - const groups = { 我的: [] } + const groups: Record = { + 我的: [], + 精选: agentGroups['精选'] || [] + } if (!search.trim()) { Object.entries(agentGroups).forEach(([group, agents]) => { - groups[group] = agents + if (group !== '精选') { + groups[group] = agents + } }) return groups } Object.entries(agentGroups).forEach(([group, agents]) => { + if (group === '精选') return + const filteredAgents = agents.filter( (agent) => agent.name.toLowerCase().includes(search.toLowerCase()) || @@ -111,9 +118,7 @@ const AgentsPage: FC = () => { ) const tabItems = useMemo(() => { - let groups = Object.keys(filteredAgentGroups) - - groups = groups.includes('精选') ? [groups[0], '精选', ...groups.filter((g) => g !== '精选')] : groups + const groups = Object.keys(filteredAgentGroups) return groups.map((group, i) => { const id = String(i + 1) @@ -250,6 +255,12 @@ const Tabs = styled(TabsAntd)` font-size: 13px; justify-content: left; padding: 7px 12px !important; + .ant-tabs-tab-btn { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 100px; + } &:hover { color: var(--color-text) !important; background-color: var(--color-background-soft); diff --git a/src/renderer/src/pages/agents/agentGroupTranslations.ts b/src/renderer/src/pages/agents/agentGroupTranslations.ts index 7341291ecc..449f4f7079 100644 --- a/src/renderer/src/pages/agents/agentGroupTranslations.ts +++ b/src/renderer/src/pages/agents/agentGroupTranslations.ts @@ -3,6 +3,7 @@ export type GroupTranslations = { 'en-US': string 'zh-CN': string 'zh-TW': string + 'ru-RU': string } } @@ -10,171 +11,205 @@ export const groupTranslations: GroupTranslations = { 我的: { 'en-US': 'My Agents', 'zh-CN': '我的', - 'zh-TW': '我的' + 'zh-TW': '我的', + 'ru-RU': 'Мои агенты' }, 职业: { 'en-US': 'Career', 'zh-CN': '职业', - 'zh-TW': '職業' + 'zh-TW': '職業', + 'ru-RU': 'Карьера' }, 商业: { 'en-US': 'Business', 'zh-CN': '商业', - 'zh-TW': '商業' + 'zh-TW': '商業', + 'ru-RU': 'Бизнес' }, 工具: { 'en-US': 'Tools', 'zh-CN': '工具', - 'zh-TW': '工具' + 'zh-TW': '工具', + 'ru-RU': 'Инструменты' }, 语言: { 'en-US': 'Language', 'zh-CN': '语言', - 'zh-TW': '語言' + 'zh-TW': '語言', + 'ru-RU': 'Язык' }, 办公: { 'en-US': 'Office', 'zh-CN': '办公', - 'zh-TW': '辦公' + 'zh-TW': '辦公', + 'ru-RU': 'Офис' }, 通用: { 'en-US': 'General', 'zh-CN': '通用', - 'zh-TW': '通用' + 'zh-TW': '通用', + 'ru-RU': 'Общее' }, 写作: { 'en-US': 'Writing', 'zh-CN': '写作', - 'zh-TW': '寫作' + 'zh-TW': '寫作', + 'ru-RU': 'Письмо' }, 精选: { 'en-US': 'Featured', 'zh-CN': '精选', - 'zh-TW': '精選' + 'zh-TW': '精選', + 'ru-RU': 'Избранное' }, 编程: { 'en-US': 'Programming', 'zh-CN': '编程', - 'zh-TW': '編程' + 'zh-TW': '編程', + 'ru-RU': 'Программирование' }, 情感: { 'en-US': 'Emotion', 'zh-CN': '情感', - 'zh-TW': '情感' + 'zh-TW': '情感', + 'ru-RU': 'Эмоции' }, 教育: { 'en-US': 'Education', 'zh-CN': '教育', - 'zh-TW': '教育' + 'zh-TW': '教育', + 'ru-RU': 'Образование' }, 创意: { 'en-US': 'Creative', 'zh-CN': '创意', - 'zh-TW': '創意' + 'zh-TW': '創意', + 'ru-RU': 'Креатив' }, 学术: { 'en-US': 'Academic', 'zh-CN': '学术', - 'zh-TW': '學術' + 'zh-TW': '學術', + 'ru-RU': 'Академический' }, 设计: { 'en-US': 'Design', 'zh-CN': '设计', - 'zh-TW': '設計' + 'zh-TW': '設計', + 'ru-RU': 'Дизайн' }, 艺术: { 'en-US': 'Art', 'zh-CN': '艺术', - 'zh-TW': '藝術' + 'zh-TW': '藝術', + 'ru-RU': 'Искусство' }, 娱乐: { 'en-US': 'Entertainment', 'zh-CN': '娱乐', - 'zh-TW': '娛樂' + 'zh-TW': '娛樂', + 'ru-RU': 'Развлечения' }, 生活: { 'en-US': 'Life', 'zh-CN': '生活', - 'zh-TW': '生活' + 'zh-TW': '生活', + 'ru-RU': 'Жизнь' }, 医疗: { 'en-US': 'Medical', 'zh-CN': '医疗', - 'zh-TW': '醫療' + 'zh-TW': '醫療', + 'ru-RU': 'Медицина' }, 游戏: { 'en-US': 'Games', 'zh-CN': '游戏', - 'zh-TW': '遊戲' + 'zh-TW': '遊戲', + 'ru-RU': 'Игры' }, 翻译: { 'en-US': 'Translation', 'zh-CN': '翻译', - 'zh-TW': '翻譯' + 'zh-TW': '翻譯', + 'ru-RU': 'Перевод' }, 音乐: { 'en-US': 'Music', 'zh-CN': '音乐', - 'zh-TW': '音樂' + 'zh-TW': '音樂', + 'ru-RU': 'Музыка' }, 点评: { 'en-US': 'Review', 'zh-CN': '点评', - 'zh-TW': '點評' + 'zh-TW': '點評', + 'ru-RU': 'Обзор' }, 文案: { 'en-US': 'Copywriting', 'zh-CN': '文案', - 'zh-TW': '文案' + 'zh-TW': '文案', + 'ru-RU': 'Копирайтинг' }, 百科: { 'en-US': 'Encyclopedia', 'zh-CN': '百科', - 'zh-TW': '百科' + 'zh-TW': '百科', + 'ru-RU': 'Энциклопедия' }, 健康: { 'en-US': 'Health', 'zh-CN': '健康', - 'zh-TW': '健康' + 'zh-TW': '健康', + 'ru-RU': 'Здоровье' }, 营销: { 'en-US': 'Marketing', 'zh-CN': '营销', - 'zh-TW': '營銷' + 'zh-TW': '營銷', + 'ru-RU': 'Маркетинг' }, 科学: { 'en-US': 'Science', 'zh-CN': '科学', - 'zh-TW': '科學' + 'zh-TW': '科學', + 'ru-RU': 'Наука' }, 分析: { 'en-US': 'Analysis', 'zh-CN': '分析', - 'zh-TW': '分析' + 'zh-TW': '分析', + 'ru-RU': 'Анализ' }, 法律: { 'en-US': 'Legal', 'zh-CN': '法律', - 'zh-TW': '法律' + 'zh-TW': '法律', + 'ru-RU': 'Право' }, 咨询: { 'en-US': 'Consulting', 'zh-CN': '咨询', - 'zh-TW': '諮詢' + 'zh-TW': '諮詢', + 'ru-RU': 'Консалтинг' }, 金融: { 'en-US': 'Finance', 'zh-CN': '金融', - 'zh-TW': '金融' + 'zh-TW': '金融', + 'ru-RU': 'Финансы' }, 旅游: { 'en-US': 'Travel', 'zh-CN': '旅游', - 'zh-TW': '旅遊' + 'zh-TW': '旅遊', + 'ru-RU': 'Путешествия' }, 管理: { 'en-US': 'Management', 'zh-CN': '管理', - 'zh-TW': '管理' + 'zh-TW': '管理', + 'ru-RU': 'Управление' } }