640 lines
27 KiB
TypeScript
640 lines
27 KiB
TypeScript
type Language = 'en' | 'ja' | 'zh-CN' | 'zh-TW';
|
||
|
||
const translations: Record<Language, Record<string, string>> = {
|
||
'en': {
|
||
'app.name': 'BitSage',
|
||
'menu.home': 'Home',
|
||
|
||
'group.cs': 'Computer Science Domains',
|
||
'group.tools': 'Research Tools',
|
||
'group.creation': 'Creative Studio',
|
||
|
||
'module.math': 'Mathematics',
|
||
'module.theory': 'Theory of Computation',
|
||
'module.principles': 'Comp. Architecture',
|
||
'module.soft_eng': 'Software Eng.',
|
||
'module.graphics': 'Comp. Graphics',
|
||
'module.network': 'Comp. Network',
|
||
'module.ai_lab': 'AI Laboratory',
|
||
'module.research': 'Academic Search',
|
||
'module.sql': 'SQL Toolbox',
|
||
'module.vision': 'Vision Lab',
|
||
'module.studio': 'Video Studio',
|
||
'module.audio': 'Audio Lab',
|
||
|
||
'desc.math': 'Discrete math, calculus & logic',
|
||
'desc.theory': 'Automata, computability & complexity',
|
||
'desc.principles': 'ISA, pipelining & memory hierarchy',
|
||
'desc.soft_eng': 'Design patterns & DevOps',
|
||
'desc.graphics': 'Rendering, OpenGL & WebGL',
|
||
'desc.network': 'Protocols, security & distributed systems',
|
||
'desc.ai_lab': 'ML, DL & Neural Networks',
|
||
'desc.research': 'Web-grounded academic research',
|
||
'desc.sql': 'Format, convert & manipulate SQL',
|
||
'desc.vision': 'Image analysis and generation',
|
||
'desc.studio': 'AI video generation studio',
|
||
'desc.audio': 'Speech-to-text and Text-to-speech',
|
||
|
||
// Module specific greetings
|
||
'hello.math': 'Mathematics Workspace',
|
||
'hello.theory': 'Theoretical Computer Science',
|
||
'hello.principles': 'Computer Architecture',
|
||
'hello.soft_eng': 'Software Engineering',
|
||
'hello.graphics': 'Graphics & Rendering',
|
||
'hello.network': 'Network Engineering',
|
||
'hello.ai_lab': 'AI & Machine Learning',
|
||
'hello.research': 'Academic Research',
|
||
|
||
// Module specific placeholders
|
||
'placeholder.math': 'Ask about discrete math, linear algebra, or proofs...',
|
||
'placeholder.theory': 'Ask about Turing machines, P vs NP, or automata...',
|
||
'placeholder.principles': 'Ask about RISC-V, cache coherence, or digital logic...',
|
||
'placeholder.soft_eng': 'Ask about design patterns, agile, or system architecture...',
|
||
'placeholder.graphics': 'Ask about ray tracing, shaders, or WebGL...',
|
||
'placeholder.network': 'Ask about TCP/IP, OSI model, or network security...',
|
||
'placeholder.ai_lab': 'Ask about transformers, backpropagation, or PyTorch...',
|
||
'placeholder.research': 'Search for papers, technical docs, or citations...',
|
||
|
||
'welcome.title': 'Welcome to BitSage',
|
||
'welcome.subtitle': 'Your AI companion for Computer Science & Technology.',
|
||
'welcome.setup': 'Please enter your Gemini API Key to get started.',
|
||
|
||
'settings.title': 'Settings',
|
||
'settings.apiKey': 'API Key',
|
||
'settings.language': 'Language',
|
||
'settings.theme': 'Theme',
|
||
'settings.data': 'Data Management',
|
||
'settings.export': 'Export Data',
|
||
'settings.import': 'Import Data',
|
||
'settings.clear_data': 'Clear All Data',
|
||
'settings.danger_zone': 'Danger Zone',
|
||
'settings.key_notice': 'Stored locally in your browser.',
|
||
|
||
'action.send': 'Send',
|
||
'action.upload': 'Upload',
|
||
'action.record': 'Record',
|
||
'action.stop': 'Stop',
|
||
'action.generate': 'Generate',
|
||
'action.new_chat': 'New Chat',
|
||
'action.install': 'Install App',
|
||
'action.toggle_think': 'Deep Thinking Mode',
|
||
'action.lang_mode': 'AI Language',
|
||
'action.lang_system': 'System Lang',
|
||
'action.lang_input': 'Follow Input',
|
||
|
||
'history.title': 'History',
|
||
'history.empty': 'No history for this module.',
|
||
|
||
'prompt.placeholder': 'Ask me anything about this domain...',
|
||
'status.thinking': 'Thinking deeply...',
|
||
'status.generating': 'Generating...',
|
||
'status.recording': 'Recording...',
|
||
|
||
'msg.sources': 'Sources:',
|
||
'msg.thinking': 'Thinking...',
|
||
'disclaimer': 'Gemini can make mistakes. Check important info.',
|
||
|
||
'error.no_key': 'Please set your API Key in settings.',
|
||
'confirm.delete': 'Are you sure you want to delete this chat?',
|
||
'confirm.clear_data': 'WARNING: This will delete ALL your chat history and settings. This action cannot be undone. Are you sure?',
|
||
'alert.import_success': 'Import successful!',
|
||
'alert.invalid_file': 'Invalid file format',
|
||
|
||
'opt.landscape': 'Landscape (16:9)',
|
||
'opt.portrait': 'Portrait (9:16)',
|
||
'opt.square': 'Square (1:1)',
|
||
'opt.wide': 'Wide (16:9)',
|
||
|
||
'veo.prompt': 'Describe the video you want to generate...',
|
||
'img.prompt': 'Describe the image you want to generate...',
|
||
'audio.prompt': 'Enter text to generate speech...',
|
||
'btn.start': 'Get Started',
|
||
|
||
'guide.vision.title': 'Vision Lab',
|
||
'guide.vision.desc': 'Generate high-quality images from text or analyze uploaded images for code and diagrams.',
|
||
'guide.vision.tip1': 'Describe the scene, style, and lighting in detail.',
|
||
'guide.vision.tip2': 'Upload a UML diagram to get a code implementation.',
|
||
|
||
'guide.studio.title': 'Video Studio',
|
||
'guide.studio.desc': 'Create short, high-quality videos using the Veo model. Perfect for demos or visual concepts.',
|
||
'guide.studio.tip1': 'Specify movement and camera angles (e.g., "Drone shot of...").',
|
||
'guide.studio.tip2': 'Video generation takes a few minutes. Please be patient.',
|
||
|
||
'guide.audio.title': 'Audio Lab',
|
||
'guide.audio.desc': 'Convert text to natural-sounding speech or transcribe recordings.',
|
||
'guide.audio.tip1': 'Enter text to generate speech (TTS).',
|
||
'guide.audio.tip2': 'Future update: Upload audio for transcription.',
|
||
|
||
'ui.workbench': 'Workbench',
|
||
'ui.gallery': 'Results',
|
||
'ui.config': 'Configuration',
|
||
|
||
// Share & Metadata
|
||
'share.title': 'Share Session',
|
||
'share.copy': 'Copy Full Chat',
|
||
'share.txt': 'Download Text',
|
||
'share.img': 'Download Image',
|
||
'success.copy': 'Copied to clipboard!',
|
||
'role.user': 'You',
|
||
'role.model': 'Gemini',
|
||
'role.veo': 'Veo',
|
||
|
||
// SQL Tool
|
||
'sql.format': 'Format SQL',
|
||
'sql.convert': 'Convert Dialect',
|
||
'sql.replace': 'Anonymize AS',
|
||
'sql.minify': 'Minify (Single Line)',
|
||
'sql.input': 'Input SQL',
|
||
'sql.output': 'Output SQL',
|
||
'sql.target_db': 'Target Database',
|
||
'sql.placeholder': 'Paste your SQL here...',
|
||
'sql.processing': 'Processing...',
|
||
'sql.custom': 'Other / AI Assist',
|
||
'sql.custom_prompt': 'Describe operation or generation needed...',
|
||
'sql.run': 'Run',
|
||
|
||
// New Toasts
|
||
'warning.no_sql': 'Please enter SQL code first.',
|
||
'success.apikey_updated': 'API Key configuration updated.',
|
||
'success.data_imported': 'Data imported successfully.',
|
||
'error.invalid_file': 'Invalid file format.',
|
||
'error.screenshot': 'Failed to generate screenshot.',
|
||
'error.tts': 'TTS Generation failed.',
|
||
},
|
||
'zh-CN': {
|
||
'app.name': '比特智者',
|
||
'menu.home': '首页',
|
||
|
||
'group.cs': '计算机科学领域',
|
||
'group.tools': '研究工具',
|
||
'group.creation': '创意工作室',
|
||
|
||
'module.math': '数学基础',
|
||
'module.theory': '计算理论',
|
||
'module.principles': '计算机体系结构',
|
||
'module.soft_eng': '软件工程',
|
||
'module.graphics': '计算机图形学',
|
||
'module.network': '计算机网络',
|
||
'module.ai_lab': '人工智能',
|
||
'module.research': '学术搜索',
|
||
'module.sql': 'SQL 工具箱',
|
||
'module.vision': '视觉实验室',
|
||
'module.studio': '视频工作室',
|
||
'module.audio': '音频实验室',
|
||
|
||
'desc.math': '离散数学、微积分与逻辑',
|
||
'desc.theory': '自动机、可计算性与复杂性',
|
||
'desc.principles': '指令集、流水线与存储层次',
|
||
'desc.soft_eng': '设计模式与 DevOps',
|
||
'desc.graphics': '渲染、OpenGL 与 WebGL',
|
||
'desc.network': '协议、安全与分布式系统',
|
||
'desc.ai_lab': '机器学习、深度学习与神经网络',
|
||
'desc.research': '基于网络的学术研究',
|
||
'desc.sql': 'SQL 格式化、转换与处理',
|
||
'desc.vision': '图像分析与生成',
|
||
'desc.studio': 'AI 视频生成工作室',
|
||
'desc.audio': '语音转文字与文字转语音',
|
||
|
||
'hello.math': 'CS 数学基础',
|
||
'hello.theory': '计算机理论基础',
|
||
'hello.principles': '计算机体系结构',
|
||
'hello.soft_eng': '软件工程与架构',
|
||
'hello.graphics': '图形学与渲染',
|
||
'hello.network': '网络工程与安全',
|
||
'hello.ai_lab': 'AI 与深度学习',
|
||
'hello.research': '学术研究助手',
|
||
|
||
'placeholder.math': '询问关于离散数学、线性代数或证明的问题...',
|
||
'placeholder.theory': '询问关于图灵机、P vs NP 或有限自动机...',
|
||
'placeholder.principles': '询问关于RISC-V、缓存一致性或数字逻辑...',
|
||
'placeholder.soft_eng': '询问关于设计模式、敏捷开发或系统架构...',
|
||
'placeholder.graphics': '询问关于光线追踪、着色器或WebGL...',
|
||
'placeholder.network': '询问关于TCP/IP、OSI模型或网络安全...',
|
||
'placeholder.ai_lab': '询问关于Transformer、反向传播或PyTorch...',
|
||
'placeholder.research': '搜索论文、技术文档或引用...',
|
||
|
||
'welcome.title': '欢迎使用比特智者',
|
||
'welcome.subtitle': '您的计算机科学与技术学习 AI 助手。',
|
||
'welcome.setup': '请输入您的 Gemini API Key 以开始使用。',
|
||
|
||
'settings.title': '设置',
|
||
'settings.apiKey': 'API 密钥',
|
||
'settings.language': '语言',
|
||
'settings.theme': '主题',
|
||
'settings.data': '数据管理',
|
||
'settings.export': '导出数据',
|
||
'settings.import': '导入数据',
|
||
'settings.clear_data': '清除所有数据',
|
||
'settings.danger_zone': '危险区域',
|
||
'settings.key_notice': '仅保存在您的浏览器本地。',
|
||
|
||
'action.send': '发送',
|
||
'action.upload': '上传',
|
||
'action.record': '录音',
|
||
'action.stop': '停止',
|
||
'action.generate': '生成',
|
||
'action.new_chat': '新会话',
|
||
'action.install': '安装应用',
|
||
'action.toggle_think': '深度思考模式',
|
||
'action.lang_mode': 'AI 语言',
|
||
'action.lang_system': '跟随系统',
|
||
'action.lang_input': '跟随输入',
|
||
|
||
'history.title': '历史记录',
|
||
'history.empty': '暂无该模块的历史记录',
|
||
|
||
'prompt.placeholder': '在此领域提问...',
|
||
'status.thinking': '深度思考中...',
|
||
'status.generating': '生成中...',
|
||
'status.recording': '录音中...',
|
||
|
||
'msg.sources': '参考来源:',
|
||
'msg.thinking': '思考中...',
|
||
'disclaimer': 'Gemini 可能会犯错,请核实重要信息。',
|
||
|
||
'error.no_key': '请在设置中配置您的 API Key。',
|
||
'confirm.delete': '确定要删除此会话吗?',
|
||
'confirm.clear_data': '警告:此操作将删除您所有的聊天记录和设置,且无法撤销。确定要继续吗?',
|
||
'alert.import_success': '导入成功!',
|
||
'alert.invalid_file': '无效的文件格式',
|
||
|
||
'opt.landscape': '横屏 (16:9)',
|
||
'opt.portrait': '竖屏 (9:16)',
|
||
'opt.square': '方形 (1:1)',
|
||
'opt.wide': '宽屏 (16:9)',
|
||
|
||
'veo.prompt': '描述您想生成的视频...',
|
||
'img.prompt': '描述您想生成的图片...',
|
||
'audio.prompt': '请输入文本以生成语音...',
|
||
'btn.start': '开始体验',
|
||
|
||
'guide.vision.title': '视觉实验室',
|
||
'guide.vision.desc': '根据文本描述生成高质量图像,或分析上传的图像(如UML图、代码截图)。',
|
||
'guide.vision.tip1': '详细描述场景、风格和光照效果以获得最佳结果。',
|
||
'guide.vision.tip2': '上传架构图可让 AI 辅助生成代码实现。',
|
||
|
||
'guide.studio.title': '视频工作室',
|
||
'guide.studio.desc': '使用 Veo 模型生成短视频。非常适合演示、概念可视化。',
|
||
'guide.studio.tip1': '指定动作和镜头角度(例如“无人机拍摄...”)。',
|
||
'guide.studio.tip2': '视频生成需要几分钟时间,请耐心等待。',
|
||
|
||
'guide.audio.title': '音频实验室',
|
||
'guide.audio.desc': '将文本转换为自然流畅的语音,或将录音转录为文本。',
|
||
'guide.audio.tip1': '输入文本以生成语音 (TTS)。',
|
||
'guide.audio.tip2': '后续更新:支持上传音频进行转录。',
|
||
|
||
'ui.workbench': '工作台',
|
||
'ui.gallery': '生成结果',
|
||
'ui.config': '参数配置',
|
||
|
||
// Share & Metadata
|
||
'share.title': '分享会话',
|
||
'share.copy': '复制完整对话',
|
||
'share.txt': '下载文本 (.txt)',
|
||
'share.img': '下载长图',
|
||
'success.copy': '已复制到剪贴板!',
|
||
'role.user': '你',
|
||
'role.model': 'Gemini',
|
||
'role.veo': 'Veo',
|
||
|
||
// SQL Tool
|
||
'sql.format': '格式化 SQL',
|
||
'sql.convert': '方言转换',
|
||
'sql.replace': 'AS 序号替换',
|
||
'sql.minify': '单行压缩',
|
||
'sql.input': '输入 SQL',
|
||
'sql.output': '输出 SQL',
|
||
'sql.target_db': '目标数据库',
|
||
'sql.placeholder': '在此粘贴您的 SQL...',
|
||
'sql.processing': '处理中...',
|
||
'sql.custom': '其他 / AI 助手',
|
||
'sql.custom_prompt': '描述您的需求(例如“提取表名”或“生成建表语句”)',
|
||
'sql.run': '执行',
|
||
|
||
// New Toasts
|
||
'warning.no_sql': '请先输入 SQL 代码。',
|
||
'success.apikey_updated': 'API Key 配置已更新。',
|
||
'success.data_imported': '数据导入成功。',
|
||
'error.invalid_file': '无效的文件格式。',
|
||
'error.screenshot': '截图生成失败。',
|
||
'error.tts': '语音生成失败。',
|
||
},
|
||
'ja': {
|
||
'app.name': 'BitSage',
|
||
'menu.home': 'ホーム',
|
||
'group.cs': 'コンピュータサイエンス分野',
|
||
'group.tools': '研究ツール',
|
||
'group.creation': 'クリエイティブスタジオ',
|
||
|
||
'module.math': '数学基礎',
|
||
'module.theory': '計算理論',
|
||
'module.principles': 'コンピュータ・アーキテクチャ',
|
||
'module.soft_eng': 'ソフトウェア工学',
|
||
'module.graphics': 'CG・グラフィックス',
|
||
'module.network': 'コンピュータネットワーク',
|
||
'module.ai_lab': '人工知能ラボ',
|
||
'module.research': '学術検索',
|
||
'module.sql': 'SQLツール',
|
||
'module.vision': 'ビジョンラボ',
|
||
'module.studio': 'ビデオスタジオ',
|
||
'module.audio': 'オーディオラボ',
|
||
|
||
'desc.math': '離散数学、微積分、論理学',
|
||
'desc.theory': 'オートマトン、計算可能性、複雑性',
|
||
'desc.principles': '命令セット、パイプライン、メモリ階層',
|
||
'desc.soft_eng': 'デザインパターン、DevOps',
|
||
'desc.graphics': 'レンダリング、OpenGL、WebGL',
|
||
'desc.network': 'プロトコル、セキュリティ、分散システム',
|
||
'desc.ai_lab': '機械学習、深層学習、ニューラルネットワーク',
|
||
'desc.research': 'Webに基づく学術研究',
|
||
'desc.sql': 'SQLのフォーマット、変換、操作',
|
||
'desc.vision': '画像分析と生成',
|
||
'desc.studio': 'AIビデオ生成スタジオ',
|
||
'desc.audio': '音声認識と音声合成',
|
||
|
||
'hello.math': 'CS 数学',
|
||
'hello.theory': '計算機科学の理論',
|
||
'hello.principles': 'コンピュータ・アーキテクチャ',
|
||
'hello.soft_eng': 'CG & レンダリング',
|
||
'hello.graphics': 'CG & レンダリング',
|
||
'hello.network': 'ネットワーク工学',
|
||
'hello.ai_lab': 'AI & 機械学習',
|
||
'hello.research': '学術研究アシスタント',
|
||
|
||
'placeholder.math': '離散数学、線形代数、証明について質問する...',
|
||
'placeholder.theory': 'チューリングマシン、P vs NP、有限オートマトンについて質問する...',
|
||
'placeholder.principles': 'RISC-V、キャッシュコヒーレンス、デジタル論理について質問する...',
|
||
'placeholder.soft_eng': 'デザインパターン、アジャイル、システムアーキテクチャについて質問する...',
|
||
'placeholder.graphics': 'レイトレーシング、シェーダー、WebGLについて質問する...',
|
||
'placeholder.network': 'TCP/IP、OSIモデル、ネットワークセキュリティについて質問する...',
|
||
'placeholder.ai_lab': 'Transformer、バックプロパゲーション、PyTorchについて質問する...',
|
||
'placeholder.research': '論文、技術文書、引用を検索...',
|
||
|
||
'welcome.title': 'BitSageへようこそ',
|
||
'welcome.subtitle': 'コンピュータサイエンス学習のためのAIパートナー。',
|
||
'welcome.setup': '開始するにはGemini APIキーを入力してください。',
|
||
|
||
'settings.title': '設定',
|
||
'settings.apiKey': 'APIキー',
|
||
'settings.language': '言語',
|
||
'settings.theme': 'テーマ',
|
||
'settings.data': 'データ管理',
|
||
'settings.export': 'エクスポート',
|
||
'settings.import': 'インポート',
|
||
'settings.clear_data': '全データを消去',
|
||
'settings.danger_zone': '危険地帯',
|
||
'settings.key_notice': 'ブラウザにローカル保存されます。',
|
||
|
||
'action.send': '送信',
|
||
'action.upload': 'アップロード',
|
||
'action.record': '録音',
|
||
'action.stop': '停止',
|
||
'action.generate': '生成',
|
||
'action.new_chat': '新しいチャット',
|
||
'action.install': 'アプリをインストール',
|
||
'action.toggle_think': '深い思考モード',
|
||
'action.lang_mode': 'AI 言語',
|
||
'action.lang_system': 'システム言語',
|
||
'action.lang_input': '入力に合わせる',
|
||
|
||
'history.title': '履歴',
|
||
'history.empty': 'このモジュールの履歴はありません。',
|
||
|
||
'prompt.placeholder': 'この分野について質問してください...',
|
||
'status.thinking': '深く考えています...',
|
||
'status.generating': '生成中...',
|
||
'status.recording': '録音中...',
|
||
|
||
'msg.sources': '情報源:',
|
||
'msg.thinking': '思考中...',
|
||
'disclaimer': 'Geminiは間違いを犯す可能性があります。',
|
||
|
||
'error.no_key': '設定でAPIキーを設定してください。',
|
||
'confirm.delete': 'このチャットを削除してもよろしいですか?',
|
||
'confirm.clear_data': '警告:これにより、すべてのチャット履歴と設定が削除されます。元に戻すことはできません。よろしいですか?',
|
||
'alert.import_success': 'インポートに成功しました!',
|
||
'alert.invalid_file': '無効なファイル形式です',
|
||
|
||
'opt.landscape': '横向き (16:9)',
|
||
'opt.portrait': '縦向き (9:16)',
|
||
'opt.square': '正方形 (1:1)',
|
||
'opt.wide': 'ワイド (16:9)',
|
||
|
||
'veo.prompt': '生成したい動画を説明してください...',
|
||
'img.prompt': '生成したい画像を説明してください...',
|
||
'audio.prompt': '音声を生成するためのテキストを入力...',
|
||
'btn.start': '始める',
|
||
|
||
'guide.vision.title': 'ビジョンラボ',
|
||
'guide.vision.desc': 'テキストから高品質な画像を生成、または画像の分析。',
|
||
'guide.vision.tip1': '詳細なシーン、スタイル、照明を記述してください。',
|
||
'guide.vision.tip2': '図をアップロードしてコードを生成できます。',
|
||
|
||
'guide.studio.title': 'ビデオスタジオ',
|
||
'guide.studio.desc': 'Veoモデルを使用して短いビデオを生成します。',
|
||
'guide.studio.tip1': '動きとカメラアングルを指定してください。',
|
||
'guide.studio.tip2': '生成には数分かかります。',
|
||
|
||
'guide.audio.title': 'オーディオラボ',
|
||
'guide.audio.desc': 'テキストを自然な音声に変換します。',
|
||
'guide.audio.tip1': 'テキストを入力して音声を生成 (TTS)。',
|
||
'guide.audio.tip2': '将来の更新:文字起こし。',
|
||
|
||
'ui.workbench': 'ワークベンチ',
|
||
'ui.gallery': '生成結果',
|
||
'ui.config': '設定',
|
||
|
||
// Share & Metadata
|
||
'share.title': 'セッションを共有',
|
||
'share.copy': '会話をコピー',
|
||
'share.txt': 'テキストをダウンロード',
|
||
'share.img': '長い画像を保存',
|
||
'success.copy': 'クリップボードにコピーしました!',
|
||
'role.user': 'あなた',
|
||
'role.model': 'Gemini',
|
||
'role.veo': 'Veo',
|
||
|
||
// SQL Tool
|
||
'sql.format': 'SQL整形',
|
||
'sql.convert': '方言変換',
|
||
'sql.replace': 'AS番号置換',
|
||
'sql.minify': '一行化',
|
||
'sql.input': '入力SQL',
|
||
'sql.output': '出力SQL',
|
||
'sql.target_db': 'ターゲットDB',
|
||
'sql.placeholder': 'ここにSQLを貼り付けてください...',
|
||
'sql.processing': '処理中...',
|
||
'sql.custom': 'その他 / AI アシスト',
|
||
'sql.custom_prompt': '操作を説明してください(例:「テーブル名を抽出」)',
|
||
'sql.run': '実行',
|
||
|
||
// New Toasts
|
||
'warning.no_sql': '先にSQLコードを入力してください。',
|
||
'success.apikey_updated': 'APIキーの設定が更新されました。',
|
||
'success.data_imported': 'データのインポートが完了しました。',
|
||
'error.invalid_file': '無効なファイル形式です。',
|
||
'error.screenshot': 'スクリーンショットの生成に失敗しました。',
|
||
'error.tts': '音声生成に失敗しました。',
|
||
},
|
||
'zh-TW': {
|
||
'app.name': '比特智者',
|
||
'menu.home': '首頁',
|
||
'group.cs': '計算機科學領域',
|
||
'group.tools': '研究工具',
|
||
'group.creation': '創意工作室',
|
||
|
||
'module.math': '數學基礎',
|
||
'module.theory': '計算理論',
|
||
'module.principles': '電腦體系結構',
|
||
'module.soft_eng': '軟體工程',
|
||
'module.graphics': '計算機圖形學',
|
||
'module.network': '計算機網路',
|
||
'module.ai_lab': '人工智慧',
|
||
'module.research': '學術搜尋',
|
||
'module.sql': 'SQL 工具箱',
|
||
'module.vision': '視覺實驗室',
|
||
'module.studio': '影片工作室',
|
||
'module.audio': '音訊實驗室',
|
||
|
||
'desc.math': '離散數學、微積分與邏輯',
|
||
'desc.theory': '自動機、可計算性與複雜性',
|
||
'desc.principles': '指令集、管線化與儲存層次',
|
||
'desc.soft_eng': '設計模式與 DevOps',
|
||
'desc.graphics': '渲染、OpenGL 與 WebGL',
|
||
'desc.network': '通訊協定、資安與分散式系統',
|
||
'desc.ai_lab': '機器學習、深度學習與神經網路',
|
||
'desc.research': '基於網路的學術研究',
|
||
'desc.sql': 'SQL 格式化、轉換與處理',
|
||
'desc.vision': '圖像分析與生成',
|
||
'desc.studio': 'AI 影片生成工作室',
|
||
'desc.audio': '語音轉文字與文字轉語音',
|
||
|
||
'hello.math': 'CS 數學基礎',
|
||
'hello.theory': '電腦理論基礎',
|
||
'hello.principles': '電腦體系結構',
|
||
'hello.soft_eng': '軟體工程與架構',
|
||
'hello.graphics': '圖形學與渲染',
|
||
'hello.network': '網路工程與資安',
|
||
'hello.ai_lab': 'AI 與深度學習',
|
||
'hello.research': '學術研究助手',
|
||
|
||
'placeholder.math': '詢問關於離散數學、線性代數或證明的問題...',
|
||
'placeholder.theory': '詢問關於圖靈機、P vs NP 或有限自動機...',
|
||
'placeholder.principles': '詢問關於RISC-V、快取一致性或數位邏輯...',
|
||
'placeholder.soft_eng': '詢問關於設計模式、敏捷開發或系統架構...',
|
||
'placeholder.graphics': '詢問關於光線追蹤、著色器或WebGL...',
|
||
'placeholder.network': '詢問關於TCP/IP、OSI模型或網路安全...',
|
||
'placeholder.ai_lab': '詢問關於Transformer、反向傳播或PyTorch...',
|
||
'placeholder.research': '搜尋論文、技術文件或引用...',
|
||
|
||
'welcome.title': '歡迎使用比特智者',
|
||
'welcome.subtitle': '您的計算機科學與技術學習 AI 助手。',
|
||
'welcome.setup': '請輸入您的 Gemini API Key 以開始使用。',
|
||
|
||
'settings.title': '設定',
|
||
'settings.apiKey': 'API 金鑰',
|
||
'settings.language': '語言',
|
||
'settings.theme': '主題',
|
||
'settings.data': '資料管理',
|
||
'settings.export': '匯出資料',
|
||
'settings.import': '匯入資料',
|
||
'settings.clear_data': '清除所有資料',
|
||
'settings.danger_zone': '危險區域',
|
||
'settings.key_notice': '僅保存在您的瀏覽器本地。',
|
||
|
||
'action.send': '傳送',
|
||
'action.upload': '上傳',
|
||
'action.record': '錄音',
|
||
'action.stop': '停止',
|
||
'action.generate': '生成',
|
||
'action.new_chat': '新對話',
|
||
'action.install': '安裝應用',
|
||
'action.toggle_think': '深度思考模式',
|
||
'action.lang_mode': 'AI 語言',
|
||
'action.lang_system': '跟隨系統',
|
||
'action.lang_input': '跟隨輸入',
|
||
|
||
'history.title': '歷史記錄',
|
||
'history.empty': '暫無該模組的歷史記錄',
|
||
|
||
'prompt.placeholder': '在此領域提問...',
|
||
'status.thinking': '深度思考中...',
|
||
'status.generating': '生成中...',
|
||
'status.recording': '錄音中...',
|
||
|
||
'msg.sources': '參考來源:',
|
||
'msg.thinking': '思考中...',
|
||
'disclaimer': 'Gemini 可能會犯錯,請核實重要資訊。',
|
||
|
||
'error.no_key': '請在設定中配置您的 API Key。',
|
||
'confirm.delete': '確定要刪除此對話嗎?',
|
||
'confirm.clear_data': '警告:此操作將刪除您所有的聊天記錄和設定,且無法復原。確定要繼續嗎?',
|
||
'alert.import_success': '匯入成功!',
|
||
'alert.invalid_file': '無效的檔案格式',
|
||
|
||
'opt.landscape': '橫向 (16:9)',
|
||
'opt.portrait': '直向 (9:16)',
|
||
'opt.square': '方形 (1:1)',
|
||
'opt.wide': '寬螢幕 (16:9)',
|
||
|
||
'veo.prompt': '描述您想生成的影片...',
|
||
'img.prompt': '描述您想生成的圖片...',
|
||
'audio.prompt': '請輸入文字以生成語音...',
|
||
'btn.start': '開始體驗',
|
||
|
||
'guide.vision.title': '視覺實驗室',
|
||
'guide.vision.desc': '根據文字描述生成高品質圖像,或分析上傳的圖像。',
|
||
'guide.vision.tip1': '詳細描述場景、風格和光照效果以獲得最佳結果。',
|
||
'guide.vision.tip2': '上傳架構圖可讓 AI 輔助生成程式碼實作。',
|
||
|
||
'guide.studio.title': '影片工作室',
|
||
'guide.studio.desc': '使用 Veo 模型生成短影片。非常適合演示、概念視覺化。',
|
||
'guide.studio.tip1': '指定動作和鏡頭角度(例如「無人機拍攝...」)。',
|
||
'guide.studio.tip2': '影片生成需要幾分鐘時間,請耐心等待。',
|
||
|
||
'guide.audio.title': '音訊實驗室',
|
||
'guide.audio.desc': '將文字轉換為自然流暢的語音,或將錄音轉錄為文字。',
|
||
'guide.audio.tip1': '輸入文字以生成語音 (TTS)。',
|
||
'guide.audio.tip2': '後續更新:支援上傳音訊進行轉錄。',
|
||
|
||
'ui.workbench': '工作台',
|
||
'ui.gallery': '生成結果',
|
||
'ui.config': '參數配置',
|
||
|
||
// Share & Metadata
|
||
'share.title': '分享會話',
|
||
'share.copy': '複製完整對話',
|
||
'share.txt': '下載文字 (.txt)',
|
||
'share.img': '下載長圖',
|
||
'success.copy': '已複製到剪貼簿!',
|
||
'role.user': '你',
|
||
'role.model': 'Gemini',
|
||
'role.veo': 'Veo',
|
||
|
||
// SQL Tool
|
||
'sql.format': '格式化 SQL',
|
||
'sql.convert': '方言轉換',
|
||
'sql.replace': 'AS 序號替換',
|
||
'sql.minify': '單行壓縮',
|
||
'sql.input': '輸入 SQL',
|
||
'sql.output': '輸出 SQL',
|
||
'sql.target_db': '目標資料庫',
|
||
'sql.placeholder': '在此貼上您的 SQL...',
|
||
'sql.processing': '處理中...',
|
||
'sql.custom': '其他 / AI 助手',
|
||
'sql.custom_prompt': '描述您的需求(例如「提取表名」或「生成建表語句」)',
|
||
'sql.run': '執行',
|
||
|
||
// New Toasts
|
||
'warning.no_sql': '請先輸入 SQL 程式碼。',
|
||
'success.apikey_updated': 'API Key 設定已更新。',
|
||
'success.data_imported': '資料匯入成功。',
|
||
'error.invalid_file': '無效的檔案格式。',
|
||
'error.screenshot': '截圖生成失敗。',
|
||
'error.tts': '語音生成失敗。',
|
||
}
|
||
};
|
||
|
||
export const t = (key: string, lang: Language): string => {
|
||
return translations[lang]?.[key] || translations['en'][key] || key;
|
||
}; |