<!DOCTYPE html>

<html lang="zh-CN">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>智能翻译助手</title>

    <style>

        * {

            margin: 0;

            padding: 0;

            box-sizing: border-box;

        }


        body {

            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

            min-height: 100vh;

            display: flex;

            align-items: center;

            justify-content: center;

            padding: 20px;

        }


        .container {

            background: white;

            border-radius: 20px;

            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);

            padding: 40px;

            max-width: 900px;

            width: 100%;

        }


        .header {

            text-align: center;

            margin-bottom: 40px;

        }


        .header h1 {

            color: #333;

            font-size: 2.5em;

            margin-bottom: 10px;

            background: linear-gradient(45deg, #667eea, #764ba2);

            -webkit-background-clip: text;

            -webkit-text-fill-color: transparent;

            background-clip: text;

        }


        .header p {

            color: #666;

            font-size: 1.1em;

        }


        .translation-area {

            display: grid;

            grid-template-columns: 1fr auto 1fr;

            gap: 20px;

            align-items: start;

        }


        .input-section, .output-section {

            background: #f8f9fa;

            border-radius: 15px;

            padding: 20px;

            border: 2px solid #e9ecef;

            transition: border-color 0.3s ease;

        }


        .input-section:focus-within {

            border-color: #667eea;

        }


        .section-title {

            font-weight: 600;

            margin-bottom: 15px;

            color: #333;

            display: flex;

            align-items: center;

            gap: 10px;

        }


        .language-selector {

            width: 100%;

            padding: 10px;

            border: 1px solid #ddd;

            border-radius: 8px;

            margin-bottom: 15px;

            font-size: 14px;

            background: white;

        }


        .text-input, .text-output {

            width: 100%;

            min-height: 150px;

            padding: 15px;

            border: 1px solid #ddd;

            border-radius: 8px;

            font-size: 16px;

            line-height: 1.5;

            resize: vertical;

            font-family: inherit;

        }


        .text-input:focus {

            outline: none;

            border-color: #667eea;

            box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);

        }


        .text-output {

            background: #f8f9fa;

            border: 1px solid #e9ecef;

            color: #333;

        }


        .translate-button {

            background: linear-gradient(45deg, #667eea, #764ba2);

            color: white;

            border: none;

            width: 60px;

            height: 60px;

            border-radius: 50%;

            font-size: 24px;

            cursor: pointer;

            transition: all 0.3s ease;

            display: flex;

            align-items: center;

            justify-content: center;

            align-self: center;

            box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);

        }


        .translate-button:hover {

            transform: scale(1.05);

            box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);

        }


        .translate-button:active {

            transform: scale(0.95);

        }


        .word-count {

            text-align: right;

            font-size: 12px;

            color: #999;

            margin-top: 10px;

        }


        .loading {

            opacity: 0.6;

            pointer-events: none;

        }


        @media (max-width: 768px) {

            .translation-area {

                grid-template-columns: 1fr;

                gap: 20px;

            }

            

            .translate-button {

                justify-self: center;

            }

            

            .container {

                padding: 20px;

            }

            

            .header h1 {

                font-size: 2em;

            }

        }

    </style>

</head>

<body>

    <div class="container">

        <div class="header">

            <h1>🌍 智能翻译助手</h1>

            <p>支持多种语言的智能翻译服务</p>

        </div>

        

        <div class="translation-area">

            <div class="input-section">

                <div class="section-title">

                    📝 输入文本

                </div>

                <select class="language-selector" id="sourceLanguage">

                    <option value="auto">自动检测</option>

                    <option value="zh">中文</option>

                    <option value="en">English</option>

                    <option value="ja">日本語</option>

                    <option value="ko">한국어</option>

                    <option value="fr">Français</option>

                    <option value="de">Deutsch</option>

                    <option value="es">Español</option>

                    <option value="ru">Русский</option>

                </select>

                <textarea 

                    class="text-input" 

                    id="inputText" 

                    placeholder="请输入要翻译的文本..."

                    maxlength="5000"

                ></textarea>

                <div class="word-count">

                    <span id="charCount">0</span>/5000

                </div>

            </div>

            

            <button class="translate-button" id="translateBtn" title="翻译">

               

            </button>

            

            <div class="output-section">

                <div class="section-title">

                    🎯 翻译结果

                </div>

                <select class="language-selector" id="targetLanguage">

                    <option value="zh">中文</option>

                    <option value="en">English</option>

                    <option value="ja">日本語</option>

                    <option value="ko">한국어</option>

                    <option value="fr">Français</option>

                    <option value="de">Deutsch</option>

                    <option value="es">Español</option>

                    <option value="ru">Русский</option>

                </select>

                <textarea 

                    class="text-output" 

                    id="outputText" 

                    placeholder="翻译结果将显示在这里..."

                    readonly

                ></textarea>

            </div>

        </div>

    </div>


    <script>

        // 字符计数

        const inputText = document.getElementById('inputText');

        const charCount = document.getElementById('charCount');

        const translateBtn = document.getElementById('translateBtn');

        const outputText = document.getElementById('outputText');

        const sourceLanguage = document.getElementById('sourceLanguage');

        const targetLanguage = document.getElementById('targetLanguage');


        inputText.addEventListener('input', function() {

            charCount.textContent = this.value.length;

        });


        // 翻译功能

        translateBtn.addEventListener('click', async function() {

            const text = inputText.value.trim();

            if (!text) {

                alert('请输入要翻译的文本!');

                return;

            }


            // 显示加载状态

            translateBtn.innerHTML = '⏳';

            translateBtn.disabled = true;

            outputText.value = '正在翻译...';


            try {

                // 这里使用免费的翻译API

                const response = await fetch(`https://api.mymemory.translated.net/get?q=${encodeURIComponent(text)}&langpair=${sourceLanguage.value}|${targetLanguage.value}`);

                const data = await response.json();

                

                if (data.responseStatus === 200) {

                    outputText.value = data.responseData.translatedText;

                } else {

                    outputText.value = '翻译失败,请稍后重试';

                }

            } catch (error) {

                console.error('翻译错误:', error);

                outputText.value = '翻译服务暂时不可用,请稍后重试';

            } finally {

                // 恢复按钮状态

                translateBtn.innerHTML = '⇄';

                translateBtn.disabled = false;

            }

        });


        // 回车键翻译

        inputText.addEventListener('keydown', function(e) {

            if (e.ctrlKey && e.key === 'Enter') {

                translateBtn.click();

            }

        });

    </script>

</body>

</html>