From 66fa85e474779dfb7cb806c6aca5f9bb5b2046c6 Mon Sep 17 00:00:00 2001 From: huty Date: Tue, 25 Nov 2025 22:31:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=87=B3=20v0.6.0=5F20251125?= =?UTF-8?q?=20=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 198 ++++++++++++++++++-- components/ErrorBoundary.tsx | 16 +- releases/HTY1024-APP-SKR-0.6.0_20251125.zip | Bin 0 -> 91391 bytes services/geminiService.ts | 8 +- views/ListeningView.tsx | 40 +++- views/ReadingView.tsx | 55 ++++-- 6 files changed, 274 insertions(+), 43 deletions(-) create mode 100644 releases/HTY1024-APP-SKR-0.6.0_20251125.zip diff --git a/README.md b/README.md index 9487d72..098f1f6 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,192 @@ -
-GHBanner -
+# Sakura Sensei 🌸 - AI Japanese Tutor -# Run and deploy your AI Studio app +![React](https://img.shields.io/badge/React-19.0-blue?logo=react) +![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue?logo=typescript) +![Gemini API](https://img.shields.io/badge/Google%20Gemini-API-orange?logo=google) +![Vite](https://img.shields.io/badge/Vite-5.0-purple?logo=vite) +![Tailwind CSS](https://img.shields.io/badge/Tailwind-3.4-cyan?logo=tailwindcss) -This contains everything you need to run your app locally. +**Sakura Sensei** is an immersive, all-in-one Japanese learning platform powered by Google's latest Gemini models. It provides a personalized tutor, realistic roleplay scenarios, custom reading/listening materials, and creative tools to make learning Japanese engaging and effective. -View your app in AI Studio: https://ai.studio/apps/drive/1MdpOjnvh39r0kvYmztzlvr-cTY1iF2tW +[English](#english) | [日本語](#japanese) | [中文](#chinese) -## Run Locally +--- -**Prerequisites:** Node.js + +## 🇬🇧 English +### ✨ Features -1. Install dependencies: - `npm install` -2. Set the `GEMINI_API_KEY` in [.env.local](.env.local) to your Gemini API key -3. Run the app: - `npm run dev` +* **Tutor Dojo (Chat):** + * Free chat with Sakura (AI Tutor) using `gemini-3-pro-preview` (Reasoning) or `gemini-2.5-flash`. + * **Voice Interaction:** Real-time Speech-to-Text (STT) and high-quality Text-to-Speech (TTS). + * **Thinking Mode:** Visualize the AI's reasoning process for complex grammar explanations. + * **Share:** Export chat history as Text, File, or Image (screenshot). +* **Reading Hall:** + * Generates custom reading lessons based on your topic and JLPT level (Beginner N5 - Advanced N1). + * Includes vocabulary lists, grammar analysis, and translations. + * **Contextual Tutor:** Ask questions specifically about the generated text. +* **Listening Lab:** + * AI-generated conversations and monologues with comprehension quizzes. + * Audio playback with speed controls and transcript toggles. +* **Roleplay (Speaking):** + * Practice realistic scenarios (Cafe, Hotel, Immigration, etc.). + * **AI Feedback:** Receive instant scoring on pronunciation, fluency, and grammar corrections. +* **Creative Atelier:** + * **Paint:** Generate images using `imagen-4.0` to visualize vocabulary. + * **Dream Video:** Generate short videos using `veo-3.1` (requires specific API access). +* **Toolbox:** + * **Scanner (OCR):** Upload or snap photos of Japanese text for instant analysis and study notes. + * **Translator:** Text and Image translation with audio support. +* **Data Management:** + * Local storage for history (Chat, Reading, Listening, OCR). + * Backup and Restore functionality (JSON). + +### 🚀 Getting Started + +1. **Clone the repository:** + ```bash + git clone https://github.com/yourusername/sakura-sensei.git + cd sakura-sensei + ``` + +2. **Install dependencies:** + ```bash + npm install + ``` + +3. **Set up API Key:** + * Get your API key from [Google AI Studio](https://aistudio.google.com/). + * Create a `.env` file in the root directory: + ```env + VITE_API_KEY=your_gemini_api_key_here + ``` + * *Alternatively, you can enter the API Key directly in the app's Settings menu.* + +4. **Run the app:** + ```bash + npm run dev + ``` + +### 🛠 Tech Stack + +* **Frontend:** React 19, TypeScript, Vite +* **Styling:** Tailwind CSS, Lucide React (Icons) +* **AI Integration:** `@google/genai` SDK +* **Models Used:** + * Text/Reasoning: `gemini-3-pro-preview`, `gemini-2.5-flash` + * Audio: `gemini-2.5-flash-preview-tts` + * Vision/OCR: `gemini-2.5-flash` + * Image Gen: `imagen-4.0-generate-001`, `gemini-2.5-flash-image` + * Video: `veo-3.1-fast-generate-preview` + +--- + + +## 🇯🇵 日本語 + +**さくら先生**は、Googleの最新Geminiモデルを搭載した没入型の日本語学習プラットフォームです。文法解説、ロールプレイ、読解・聴解練習など、あらゆる学習ニーズに対応します。 + +### ✨ 主な機能 + +* **学習道場 (チャット):** + * `gemini-3-pro-preview` を活用した高度な推論能力を持つAIチューターとの会話。 + * 音声入力・音声再生対応。思考モード(Thinking Mode)でAIの考え方を可視化。 + * チャット履歴の画像共有機能。 +* **読書の間:** + * トピックと難易度(N5〜N1)を指定して、オリジナルの読み物を生成。 + * 単語リスト、文法解説、翻訳付き。テキストについてAIに質問可能。 +* **聴解ラボ:** + * リスニング練習用の会話スクリプトとクイズを自動生成。 + * 音声再生、スクリプトの表示/非表示切り替え。 +* **会話道場 (ロールプレイ):** + * カフェ、駅、入国審査などのリアルなシナリオで会話練習。 + * 発音、流暢さ、文法ミスに対する即時フィードバック機能。 +* **アトリエ:** + * 画像生成 (`imagen-4.0`) や動画生成 (`veo-3.1`) で学習を視覚的にサポート。 +* **ツールボックス:** + * **スキャナー (OCR):** カメラや画像から日本語テキストを抽出し、解説を生成。 + * **翻訳機:** テキスト・画像の翻訳と音声再生。 +* **設定・データ:** + * 学習履歴のローカル保存とバックアップ/復元機能。 + +### 🚀 始め方 + +1. **リポジトリのクローン:** + ```bash + git clone https://github.com/yourusername/sakura-sensei.git + ``` + +2. **依存関係のインストール:** + ```bash + npm install + ``` + +3. **APIキーの設定:** + * [Google AI Studio](https://aistudio.google.com/) でAPIキーを取得してください。 + * `.env` ファイルを作成するか、アプリ内の「設定」メニューからキーを入力します。 + +4. **起動:** + ```bash + npm run dev + ``` + +--- + + +## 🇨🇳 中文 + +**樱花老师 (Sakura Sensei)** 是一个基于 Google Gemini 模型的全能型 AI 日语学习助手。它集成了对话练习、阅读生成、听力训练和实时纠错功能,为您提供沉浸式的日语学习体验。 + +### ✨ 主要功能 + +* **学习道场 (Tutor Chat):** + * 与 AI 导师自由对话,支持 `gemini-3-pro` 深度推理模式。 + * 支持语音输入 (STT) 和高质量语音朗读 (TTS)。 + * 支持将对话记录导出为图片、文本或文件。 +* **阅读室:** + * 根据您感兴趣的主题和 JLPT 等级 (N5-N1) 生成阅读文章。 + * 自动提取词汇表、语法点和翻译。支持针对文章内容的提问。 +* **听力实验室:** + * 生成包含理解测验的听力对话脚本。 + * 支持音频播放控制和脚本隐藏/显示。 +* **对话道场 (Roleplay):** + * 在真实场景(如便利店、机场、酒店)中进行角色扮演。 + * AI 会对您的发音、流利度和语法进行打分并提供建议。 +* **创意工作室:** + * 使用 AI 生成图片或视频来辅助记忆单词和场景。 +* **实用工具:** + * **扫描仪 (OCR):** 拍照识别日语文本,生成学习笔记。 + * **翻译机:** 支持文本和图片翻译,带发音功能。 +* **数据隐私:** + * 所有聊天和学习记录均存储在本地浏览器中 (LocalStorage)。 + * 支持数据的备份与恢复 (JSON 格式)。 + +### 🚀 快速开始 + +1. **克隆项目:** + ```bash + git clone https://github.com/yourusername/sakura-sensei.git + ``` + +2. **安装依赖:** + ```bash + npm install + ``` + +3. **配置 API Key:** + * 前往 [Google AI Studio](https://aistudio.google.com/) 获取 Gemini API Key。 + * 在项目根目录创建 `.env` 文件,或直接在应用“设置”中输入 Key。 + +4. **运行应用:** + ```bash + npm run dev + ``` + +--- + +## License + +MIT License. + +Powered by [Google Gemini API](https://ai.google.dev/). diff --git a/components/ErrorBoundary.tsx b/components/ErrorBoundary.tsx index 1830c7b..0e8c77a 100644 --- a/components/ErrorBoundary.tsx +++ b/components/ErrorBoundary.tsx @@ -1,9 +1,8 @@ - import React, { Component, ErrorInfo, ReactNode } from "react"; import { AlertCircle, RefreshCw, Trash2 } from 'lucide-react'; interface Props { - children: ReactNode; + children?: ReactNode; } interface State { @@ -12,10 +11,13 @@ interface State { } export class ErrorBoundary extends Component { - public state: State = { - hasError: false, - error: null - }; + constructor(props: Props) { + super(props); + this.state = { + hasError: false, + error: null + }; + } public static getDerivedStateFromError(error: Error): State { return { hasError: true, error }; @@ -67,4 +69,4 @@ export class ErrorBoundary extends Component { return this.props.children; } -} +} \ No newline at end of file diff --git a/releases/HTY1024-APP-SKR-0.6.0_20251125.zip b/releases/HTY1024-APP-SKR-0.6.0_20251125.zip new file mode 100644 index 0000000000000000000000000000000000000000..e5e6d7b24b4cc07cf38c5e1f844492ca411561ad GIT binary patch literal 91391 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 Tat2Goz)sGNE@D!S5|IA_?6NNN literal 0 HcmV?d00001 diff --git a/services/geminiService.ts b/services/geminiService.ts index f196ec6..6028d3a 100644 --- a/services/geminiService.ts +++ b/services/geminiService.ts @@ -396,7 +396,7 @@ class GeminiService { const targetLangName = LANGUAGE_MAP[language]; const prompt = `Create a complete Japanese reading lesson on "${topic}", level ${difficulty}. The 'japaneseContent' MUST be a complete article or story (at least 300 characters). - Output JSON with title, japaneseContent, translation (${targetLangName}), vocabulary, and grammarPoints (list of key grammar used in the text with explanations).`; + Output JSON with title, japaneseContent, translation (in ${targetLangName}), vocabulary (meanings in ${targetLangName}), and grammarPoints (explanations in ${targetLangName}).`; return this.retryOperation(async () => { const response = await ai.models.generateContent({ @@ -430,9 +430,9 @@ class GeminiService { - title - script (The full Japanese text of the conversation/monologue) - translation (The full text in ${targetLangName}) - - vocabulary (Key words) + - vocabulary (Key words with meanings in ${targetLangName}) - questions (3 multiple choice comprehension questions in ${targetLangName}) - - Each question needs: question, options (array of 3 strings), correctIndex (0-2), explanation. + - Each question needs: question, options (array of 3 strings), correctIndex (0-2), explanation (in ${targetLangName}). `; return this.retryOperation(async () => { @@ -530,7 +530,7 @@ class GeminiService { const ai = this.getAi(); const cleanBase64 = base64.replace(/^data:image\/(png|jpeg|jpg|webp|heic|heif);base64,/i, ""); const targetLang = LANGUAGE_MAP[language]; - const prompt = `OCR and analyze text. Explain in ${targetLang}. JSON: extractedText, detectedLanguage, summary, vocabulary, grammarPoints.`; + const prompt = `OCR and analyze text. Explain in ${targetLang}. JSON: extractedText, detectedLanguage, summary (in ${targetLang}), vocabulary (meanings in ${targetLang}), grammarPoints (explanations in ${targetLang}).`; return this.retryOperation(async () => { const res = await ai.models.generateContent({ diff --git a/views/ListeningView.tsx b/views/ListeningView.tsx index 041f5d6..9ceab7d 100644 --- a/views/ListeningView.tsx +++ b/views/ListeningView.tsx @@ -1,10 +1,8 @@ - - import React, { useState, useRef, useEffect } from 'react'; import { Language, ListeningLesson, ListeningLessonRecord, ReadingDifficulty, ChatMessage, Role, MessageType } from '../types'; import { geminiService, decodeAudioData } from '../services/geminiService'; import { processAndDownloadAudio } from '../utils/audioUtils'; -import { Headphones, Loader2, Send, Eye, EyeOff, List, HelpCircle, ChevronLeft, History, Trash2, X, PanelRightClose, PanelRightOpen, Volume2, Square, Play, Pause, CheckCircle, AlertCircle, FileText, MessageCircle, Download, RotateCcw } from 'lucide-react'; +import { Headphones, Loader2, Send, Eye, EyeOff, List, HelpCircle, ChevronLeft, History, Trash2, X, PanelRightClose, PanelRightOpen, Volume2, Square, Play, Pause, CheckCircle, AlertCircle, FileText, MessageCircle, Download, RotateCcw, Copy, Check } from 'lucide-react'; import { translations } from '../utils/localization'; import ChatBubble from '../components/ChatBubble'; @@ -17,6 +15,28 @@ interface ListeningViewProps { onDeleteHistoryItem: (id: string) => void; } +// Internal Copy Button Component +const CopyButton: React.FC<{ text: string; label?: string }> = ({ text, label }) => { + const [copied, setCopied] = useState(false); + + const handleCopy = (e: React.MouseEvent) => { + e.stopPropagation(); + navigator.clipboard.writeText(text); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + }; + + return ( + + ); +}; + const ListeningView: React.FC = ({ language, history, onSaveToHistory, onUpdateHistory, onClearHistory, onDeleteHistoryItem }) => { const t = translations[language].listening; const tCommon = translations[language].common; @@ -603,15 +623,21 @@ const ListeningView: React.FC = ({ language, history, onSave {/* Script Reveal */} {showScript && (
-
-

{t.scriptTitle}

+
+
+

{t.scriptTitle}

+ +

{lesson.script || {t.scriptMissing}}

-
-

{translations[language].reading.translationLabel}

+
+
+

{translations[language].reading.translationLabel}

+ +

{lesson.translation}

diff --git a/views/ReadingView.tsx b/views/ReadingView.tsx index 63cdfa5..f1ce009 100644 --- a/views/ReadingView.tsx +++ b/views/ReadingView.tsx @@ -1,8 +1,9 @@ + import React, { useState, useRef, useEffect } from 'react'; import { Language, ReadingLesson, ReadingDifficulty, ChatMessage, Role, MessageType, ReadingLessonRecord } from '../types'; import { geminiService, decodeAudioData } from '../services/geminiService'; import { processAndDownloadAudio } from '../utils/audioUtils'; -import { BookOpen, Loader2, Send, ToggleLeft, ToggleRight, List, HelpCircle, ChevronLeft, RotateCcw, History, Trash2, X, PanelRightClose, PanelRightOpen, Volume2, Square, MessageCircle, FileText, PenTool, Download } from 'lucide-react'; +import { BookOpen, Loader2, Send, ToggleLeft, ToggleRight, List, HelpCircle, ChevronLeft, RotateCcw, History, Trash2, X, PanelRightClose, PanelRightOpen, Volume2, Square, MessageCircle, FileText, PenTool, Download, Copy, Check } from 'lucide-react'; import { translations } from '../utils/localization'; import ChatBubble from '../components/ChatBubble'; @@ -15,6 +16,28 @@ interface ReadingViewProps { onDeleteHistoryItem: (id: string) => void; } +// Internal Copy Button Component +const CopyButton: React.FC<{ text: string; label?: string }> = ({ text, label }) => { + const [copied, setCopied] = useState(false); + + const handleCopy = (e: React.MouseEvent) => { + e.stopPropagation(); + navigator.clipboard.writeText(text); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + }; + + return ( + + ); +}; + const ReadingView: React.FC = ({ language, history, onSaveToHistory, onUpdateHistory, onClearHistory, onDeleteHistoryItem }) => { const t = translations[language].reading; const tCommon = translations[language].common; @@ -502,6 +525,9 @@ const ReadingView: React.FC = ({ language, history, onSaveToHi {t.translationLabel} + {/* Copy Content Button - New */} + + {/* Sidebar Toggle In Lesson View */}
{showTranslation && ( -
-

{t.translationLabel}

+
+
+

{t.translationLabel}

+ +

{lesson.translation || {t.translationMissing}}

)} -
+ + {/* Vocabulary Section */} +

{t.vocabTitle}

{lesson.vocabulary?.map((v, i) => ( -
-
-
+
+
+
{v.word} - ({v.reading}) + {v.reading && ({v.reading})}
@@ -556,13 +587,13 @@ const ReadingView: React.FC = ({ language, history, onSaveToHi {/* Grammar Section */} {lesson.grammarPoints && lesson.grammarPoints.length > 0 && ( -
+

{t.grammarHeader}

{lesson.grammarPoints.map((g, i) => ( -
+
{g.point}

{g.explanation}

@@ -642,4 +673,4 @@ const ReadingView: React.FC = ({ language, history, onSaveToHi ); }; -export default ReadingView; \ No newline at end of file +export default ReadingView;