diff --git a/web/src/i18n/locales/es-ES.ts b/web/src/i18n/locales/es-ES.ts index a2006ab58..1debdcebf 100644 --- a/web/src/i18n/locales/es-ES.ts +++ b/web/src/i18n/locales/es-ES.ts @@ -515,7 +515,7 @@ const esES = { agentType: 'Agent', agentTypeDescription: 'Usa un runner para procesar mensajes, miembros de grupo, amigos, retroalimentación y otros eventos de plataforma.', - pipelineType: 'Pipeline', + pipelineType: 'Flujo de trabajo', kindBadgeAgent: 'Agent', kindBadgePipeline: 'Pipeline', groupByKind: 'Agrupar por tipo', diff --git a/web/src/i18n/locales/ja-JP.ts b/web/src/i18n/locales/ja-JP.ts index 839a29099..c980bec89 100644 --- a/web/src/i18n/locales/ja-JP.ts +++ b/web/src/i18n/locales/ja-JP.ts @@ -715,7 +715,7 @@ const jaJP = { agentType: 'Agent', agentTypeDescription: 'Runner を使ってメッセージ、グループメンバー、友だち、フィードバックなどのプラットフォームイベントを処理します。自律的な判断、ツール利用、メッセージ以外のイベント対応が必要な場合に適しています。', - pipelineType: 'Pipeline', + pipelineType: 'パイプライン', kindBadgeAgent: 'Agent', kindBadgePipeline: 'パイプライン', groupByKind: 'タイプ別にグループ化', diff --git a/web/src/i18n/locales/ru-RU.ts b/web/src/i18n/locales/ru-RU.ts index 299e55674..79b678154 100644 --- a/web/src/i18n/locales/ru-RU.ts +++ b/web/src/i18n/locales/ru-RU.ts @@ -512,7 +512,7 @@ const ruRU = { agentType: 'Agent', agentTypeDescription: 'Используйте runner для обработки сообщений, участников групп, друзей, обратной связи и других событий платформы.', - pipelineType: 'Pipeline', + pipelineType: 'Конвейер', kindBadgeAgent: 'Agent', kindBadgePipeline: 'Pipeline', groupByKind: 'Группировать по типу', diff --git a/web/src/i18n/locales/th-TH.ts b/web/src/i18n/locales/th-TH.ts index 55e641ba4..556397633 100644 --- a/web/src/i18n/locales/th-TH.ts +++ b/web/src/i18n/locales/th-TH.ts @@ -498,7 +498,7 @@ const thTH = { agentType: 'Agent', agentTypeDescription: 'ใช้ runner เพื่อประมวลผลข้อความ สมาชิกกลุ่ม เพื่อน ฟีดแบ็ก และเหตุการณ์แพลตฟอร์มอื่นๆ', - pipelineType: 'Pipeline', + pipelineType: 'ไปป์ไลน์', kindBadgeAgent: 'Agent', kindBadgePipeline: 'Pipeline', groupByKind: 'จัดกลุ่มตามประเภท', diff --git a/web/src/i18n/locales/vi-VN.ts b/web/src/i18n/locales/vi-VN.ts index 4c43a7028..c67f18b63 100644 --- a/web/src/i18n/locales/vi-VN.ts +++ b/web/src/i18n/locales/vi-VN.ts @@ -508,7 +508,7 @@ const viVN = { agentType: 'Agent', agentTypeDescription: 'Dùng runner để xử lý tin nhắn, thành viên nhóm, bạn bè, phản hồi và các sự kiện nền tảng khác.', - pipelineType: 'Pipeline', + pipelineType: 'Quy trình', kindBadgeAgent: 'Agent', kindBadgePipeline: 'Pipeline', groupByKind: 'Nhóm theo loại', diff --git a/web/src/i18n/locales/zh-Hans.ts b/web/src/i18n/locales/zh-Hans.ts index b349c7519..2f6c200eb 100644 --- a/web/src/i18n/locales/zh-Hans.ts +++ b/web/src/i18n/locales/zh-Hans.ts @@ -672,7 +672,7 @@ const zhHans = { agentType: 'Agent', agentTypeDescription: '通过运行器处理消息、群成员、好友、反馈等平台事件。适合需要自主判断、调用工具或响应非消息事件的场景。', - pipelineType: 'Pipeline', + pipelineType: '流水线', kindBadgeAgent: 'Agent', kindBadgePipeline: '流水线', groupByKind: '按类型分组', diff --git a/web/src/i18n/locales/zh-Hant.ts b/web/src/i18n/locales/zh-Hant.ts index 34f6d743b..dfc993b47 100644 --- a/web/src/i18n/locales/zh-Hant.ts +++ b/web/src/i18n/locales/zh-Hant.ts @@ -481,7 +481,7 @@ const zhHant = { selectFromSidebar: '從側邊欄選擇一個 Agent 或 Pipeline', agentType: 'Agent', agentTypeDescription: '透過執行器處理訊息、群成員、好友、回饋等平台事件。', - pipelineType: 'Pipeline', + pipelineType: '流程線', kindBadgeAgent: 'Agent', kindBadgePipeline: '流水線', groupByKind: '依類型分組', diff --git a/web/tests/e2e/crud-smoke.spec.ts b/web/tests/e2e/crud-smoke.spec.ts index 01b34df97..eb0af4420 100644 --- a/web/tests/e2e/crud-smoke.spec.ts +++ b/web/tests/e2e/crud-smoke.spec.ts @@ -74,6 +74,20 @@ async function forceFormSubmit(page: Page, formSelector: string) { } test.describe('frontend CRUD smoke flows', () => { + test('localizes the pipeline processor type in Simplified Chinese', async ({ + page, + }) => { + await installLangBotApiMocks(page, { + authenticated: true, + language: 'zh-Hans', + }); + + await page.goto('/home/agents?id=new'); + await expect( + page.locator('[data-processor-kind="pipeline"]'), + ).toContainText('流水线'); + }); + test('viewer keeps ordinary bot and pipeline monitoring access', async ({ page, }) => { diff --git a/web/tests/e2e/fixtures/langbot-api.ts b/web/tests/e2e/fixtures/langbot-api.ts index 620f319bd..ca2431635 100644 --- a/web/tests/e2e/fixtures/langbot-api.ts +++ b/web/tests/e2e/fixtures/langbot-api.ts @@ -1239,6 +1239,7 @@ export async function installLangBotApiMocks( page: Page, options: { authenticated?: boolean; + language?: string; monitoringData?: unknown; monitoringSessions?: unknown[]; sessionAnalyses?: Record; @@ -1251,6 +1252,7 @@ export async function installLangBotApiMocks( ) { const { authenticated = false, + language = 'en-US', monitoringData, monitoringSessions, sessionAnalyses, @@ -1278,8 +1280,8 @@ export async function installLangBotApiMocks( }; await page.addInitScript( - ({ authenticated, storage }) => { - localStorage.setItem('langbot_language', 'en-US'); + ({ authenticated, language, storage }) => { + localStorage.setItem('langbot_language', language); localStorage.setItem('extensions_group_by_type', 'false'); if (authenticated) { @@ -1294,7 +1296,7 @@ export async function installLangBotApiMocks( localStorage.setItem(key, String(value)); } }, - { authenticated, storage }, + { authenticated, language, storage }, ); await page.route('**/api/v1/**', (route) => handleBackendApi(route, state));