63 lines
2.0 KiB
TypeScript
63 lines
2.0 KiB
TypeScript
import { type NextRequest, NextResponse } from "next/server"
|
||
import { generateText } from "ai"
|
||
|
||
export async function POST(request: NextRequest) {
|
||
try {
|
||
const formData = await request.formData()
|
||
const file = formData.get("file") as File
|
||
const targetLanguage = formData.get("targetLanguage") as string
|
||
|
||
if (!file || !targetLanguage) {
|
||
return NextResponse.json({ error: "缺少必要參數" }, { status: 400 })
|
||
}
|
||
|
||
// Extract text from PDF
|
||
const arrayBuffer = await file.arrayBuffer()
|
||
const buffer = Buffer.from(arrayBuffer)
|
||
|
||
// For demo purposes, we'll simulate PDF text extraction
|
||
// In production, you'd use a library like pdf-parse
|
||
const pdfText = `這是從PDF提取的示例文本。在實際應用中,這裡會是真實的PDF內容。
|
||
|
||
這個應用展示了如何使用AI來翻譯文檔內容。您可以上傳任何PDF文件,選擇目標語言,然後獲得翻譯結果。
|
||
|
||
主要功能包括:
|
||
- 支持多種語言翻譯
|
||
- 清爽的用戶介面
|
||
- 簡單易用的操作流程`
|
||
|
||
// Get language name for better translation context
|
||
const languageNames: Record<string, string> = {
|
||
"zh-TW": "繁體中文",
|
||
"zh-CN": "簡體中文",
|
||
en: "English",
|
||
ja: "日本語",
|
||
ko: "한국어",
|
||
es: "Español",
|
||
fr: "Français",
|
||
de: "Deutsch",
|
||
it: "Italiano",
|
||
pt: "Português",
|
||
ru: "Русский",
|
||
ar: "العربية",
|
||
th: "ไทย",
|
||
vi: "Tiếng Việt",
|
||
}
|
||
|
||
const targetLanguageName = languageNames[targetLanguage] || targetLanguage
|
||
|
||
// Translate using AI SDK
|
||
const { text: translatedText } = await generateText({
|
||
model: "openai/gpt-4o-mini",
|
||
prompt: `請將以下文本翻譯成${targetLanguageName}。保持原文的格式和結構,只翻譯內容:
|
||
|
||
${pdfText}`,
|
||
})
|
||
|
||
return NextResponse.json({ translatedText })
|
||
} catch (error) {
|
||
console.error("翻譯錯誤:", error)
|
||
return NextResponse.json({ error: "翻譯過程中發生錯誤" }, { status: 500 })
|
||
}
|
||
}
|