返回 CodeWhale
whale-states.ts
根目录 / web / lib / content / whale-states.ts
1 /**
2 * The words under the homepage whale. Every state reads without motion or
3 * colour: a mark and a word (codewhale-design DIRECTION.md, Craft). The
4 * performance is an illustration of a session's phases, not live telemetry.
5 *
6 * These are short status phrases shown in every routed locale, so they carry
7 * all eighteen languages here instead of the en/zh pair other content files
8 * use; a locale missing from a row falls back to English.
9 */
10 type StateText = { en: string } & Partial<Record<string, string>>;
11
12 export const WHALE_STATE_TEXT = {
13 rest: {
14 en: "Ready", zh: "就绪", ja: "準備完了", ko: "준비됨", vi: "Sẵn sàng", id: "Siap",
15 es: "Listo", "pt-BR": "Pronto", ru: "Готово к работе", uk: "Готово до роботи", fr: "Prêt",
16 de: "Bereit", hi: "तैयार", tr: "Hazır", it: "Pronto", pl: "Gotowy", ar: "جاهز", ca: "A punt",
17 },
18 listen: {
19 en: "Reading your request", zh: "正在阅读你的请求", ja: "依頼を読んでいます", ko: "요청을 읽는 중",
20 vi: "Đang đọc yêu cầu", id: "Membaca permintaan Anda", es: "Leyendo tu solicitud",
21 "pt-BR": "Lendo seu pedido", ru: "Читает ваш запрос", uk: "Читає ваш запит",
22 fr: "Lecture de votre demande", de: "Liest deine Anfrage", hi: "आपका अनुरोध पढ़ रहा है",
23 tr: "İsteğini okuyor", it: "Legge la tua richiesta", pl: "Czyta Twoje polecenie",
24 ar: "يقرأ طلبك", ca: "Llegint la teva petició",
25 },
26 think: {
27 en: "Planning", zh: "正在规划", ja: "計画中", ko: "계획하는 중", vi: "Đang lập kế hoạch",
28 id: "Merencanakan", es: "Planificando", "pt-BR": "Planejando", ru: "Планирует", uk: "Планує",
29 fr: "Planification", de: "Plant", hi: "योजना बना रहा है", tr: "Planlıyor", it: "Pianifica",
30 pl: "Planuje", ar: "يخطط", ca: "Planificant",
31 },
32 read: {
33 en: "Reading files", zh: "正在读取文件", ja: "ファイルを読んでいます", ko: "파일을 읽는 중",
34 vi: "Đang đọc tệp", id: "Membaca berkas", es: "Leyendo archivos", "pt-BR": "Lendo arquivos",
35 ru: "Читает файлы", uk: "Читає файли", fr: "Lecture des fichiers", de: "Liest Dateien",
36 hi: "फ़ाइलें पढ़ रहा है", tr: "Dosyaları okuyor", it: "Legge i file", pl: "Czyta pliki",
37 ar: "يقرأ الملفات", ca: "Llegint fitxers",
38 },
39 write: {
40 en: "Editing", zh: "正在编辑", ja: "編集中", ko: "편집하는 중", vi: "Đang chỉnh sửa",
41 id: "Mengedit", es: "Editando", "pt-BR": "Editando", ru: "Редактирует", uk: "Редагує",
42 fr: "Modification", de: "Bearbeitet", hi: "संपादित कर रहा है", tr: "Düzenliyor",
43 it: "Modifica", pl: "Edytuje", ar: "يعدّل", ca: "Editant",
44 },
45 run: {
46 en: "Running tests", zh: "正在运行测试", ja: "テストを実行中", ko: "테스트 실행 중",
47 vi: "Đang chạy kiểm thử", id: "Menjalankan pengujian", es: "Ejecutando pruebas",
48 "pt-BR": "Executando testes", ru: "Запускает тесты", uk: "Запускає тести",
49 fr: "Exécution des tests", de: "Führt Tests aus", hi: "टेस्ट चला रहा है",
50 tr: "Testleri çalıştırıyor", it: "Esegue i test", pl: "Uruchamia testy",
51 ar: "يشغّل الاختبارات", ca: "Executant proves",
52 },
53 done: {
54 en: "Done", zh: "已完成", ja: "完了", ko: "완료", vi: "Hoàn tất", id: "Selesai", es: "Listo",
55 "pt-BR": "Concluído", ru: "Готово", uk: "Готово", fr: "Terminé", de: "Fertig", hi: "पूरा हुआ",
56 tr: "Tamamlandı", it: "Fatto", pl: "Gotowe", ar: "تم", ca: "Fet",
57 },
58 pod: {
59 en: "Working with three agents", zh: "正在与三个智能体协作", ja: "3 つのエージェントと作業中",
60 ko: "에이전트 세 개와 작업 중", vi: "Đang làm việc cùng ba tác tử", id: "Bekerja dengan tiga agen",
61 es: "Trabajando con tres agentes", "pt-BR": "Trabalhando com três agentes",
62 ru: "Работает с тремя агентами", uk: "Працює з трьома агентами", fr: "Travaille avec trois agents",
63 de: "Arbeitet mit drei Agenten", hi: "तीन एजेंटों के साथ काम कर रहा है",
64 tr: "Üç ajanla çalışıyor", it: "Lavora con tre agenti", pl: "Pracuje z trzema agentami",
65 ar: "يعمل مع ثلاثة وكلاء", ca: "Treballant amb tres agents",
66 },
67 connect: {
68 en: "Connecting a provider", zh: "正在连接提供商", ja: "プロバイダーに接続中",
69 ko: "제공업체 연결 중", vi: "Đang kết nối nhà cung cấp", id: "Menghubungkan penyedia",
70 es: "Conectando un proveedor", "pt-BR": "Conectando um provedor", ru: "Подключает провайдера",
71 uk: "Підключає провайдера", fr: "Connexion d’un fournisseur", de: "Verbindet einen Anbieter",
72 hi: "प्रदाता से जोड़ रहा है", tr: "Sağlayıcıya bağlanıyor", it: "Collega un provider",
73 pl: "Łączy dostawcę", ar: "يتصل بمزوّد", ca: "Connectant un proveïdor",
74 },
75 busy: {
76 en: "Working", zh: "正在工作", ja: "作業中", ko: "작업 중", vi: "Đang làm việc", id: "Bekerja",
77 es: "Trabajando", "pt-BR": "Trabalhando", ru: "Работает", uk: "Працює", fr: "Au travail",
78 de: "Arbeitet", hi: "काम कर रहा है", tr: "Çalışıyor", it: "Al lavoro", pl: "Pracuje",
79 ar: "يعمل", ca: "Treballant",
80 },
81 } satisfies Record<string, StateText>;
82
83 export type WhaleStateKey = keyof typeof WHALE_STATE_TEXT;
84
85 export function whaleStateLabels(locale: string): Record<WhaleStateKey, string> {
86 return Object.fromEntries(
87 Object.entries(WHALE_STATE_TEXT).map(([key, text]) => [key, (text as StateText)[locale] ?? text.en]),
88 ) as Record<WhaleStateKey, string>;
89 }
90
90 lines TYPESCRIPT