<!DOCTYPE html>
<html lang="fa">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>مترجم سفارشی فارسی به انگلیسی</title>
    <style>
        /* تنظیمات پایه */
        * {
            box-sizing: border-box;
        }

        body, html {
            margin: 0;
            padding: 0;
            height: 100%;
            font-family: Arial, sans-serif;
            background-color: #f4f4f9;
            display: flex;
            justify-content: center;
            align-items: center;
            direction: rtl;
            text-align: right;
        }

        /* کانتینر مترجم */
        .translator-container {
            max-width: 600px;
            width: 90%;
            margin: 0 auto;
            background: #fff;
            padding: 30px 40px;
            border-radius: 12px;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            text-align: center;
        }

        .translator-container h2 {
            margin-bottom: 20px;
            color: #34495e;
        }

        /* استایل textarea */
        textarea {
            width: 100%;
            height: 120px;
            padding: 15px;
            margin-bottom: 20px;
            border-radius: 8px;
            border: 1px solid #ccc;
            resize: vertical;
            font-size: 16px;
            font-family: Arial, sans-serif;
            transition: border-color 0.3s;
        }

        textarea:focus {
            border-color: #76c7c0;
            outline: none;
        }

        /* استایل اسپینر */
        .spinner {
            border: 4px solid rgba(0, 0, 0, 0.1);
            border-top: 4px solid #3498db;
            border-radius: 50%;
            width: 20px;
            height: 20px;
            animation: spin 1s linear infinite;
            margin: 20px auto;
            display: none;
        }

        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        /* نمایش نتیجه ترجمه */
        .result {
            margin-top: 20px;
            padding: 15px;
            background: #ecf0f1;
            border-radius: 8px;
            min-height: 50px;
            font-size: 16px;
            color: #2c3e50;
            white-space: pre-wrap;
            word-wrap: break-word;
        }

        /* دکمه کپی */
        .copy-button {
            margin-top: 10px;
            display: none;
            background-color: #3498db;
            border: none;
            color: #fff;
            padding: 10px 15px;
            border-radius: 5px;
            cursor: pointer;
            font-size: 16px;
            transition: background-color 0.3s;
        }

        .copy-button:hover {
            background-color: #2980b9;
        }

        /* استایل پیام موفقیت */
        .success-message {
            display: none;
            margin-top: 15px;
            color: #2ecc71;
            font-size: 16px;
            font-weight: bold;
        }

        /* تنظیمات واکنش‌گرا */
        @media (max-width: 600px) {
            .translator-container {
                padding: 20px;
            }

            textarea {
                height: 100px;
            }
        }
    </style>
</head>
<body>
    <div class="translator-container">
        <h2>مترجم فارسی به انگلیسی</h2>
        <textarea id="inputText" placeholder="متن خود را به فارسی وارد کنید..."></textarea>
        <div class="spinner" id="spinner"></div>
        <div class="result" id="resultText">ترجمه</div>
        <button id="copyButton" class="copy-button">کپی متن</button>
        <div class="success-message" id="successMessage">متن با موفقیت کپی شد!</div>
    </div>

    <script>
        const inputText = document.getElementById('inputText');
        const resultText = document.getElementById('resultText');
        const spinner = document.getElementById('spinner');
        const copyButton = document.getElementById('copyButton');
        const successMessage = document.getElementById('successMessage');

        let timeout;

        inputText.addEventListener('input', function() {
            const text = inputText.value.trim();

            if (timeout) {
                clearTimeout(timeout);
            }

            // اگر ورودی خالی شد، نتیجه را پاک کن
            if (text === '') {
                resultText.textContent = 'ترجمه.';
                copyButton.style.display = 'none';
                spinner.style.display = 'none';
                return;
            }

            // اجرا با تأخیر برای جلوگیری از درخواست‌های زیاد
            timeout = setTimeout(() => translateText(text), 500);
        });

        async function translateText(text) {
            const endpoint = 'https://api.mymemory.translated.net/get';

            const params = new URLSearchParams({
                q: text,
                langpair: 'fa|en'
            });

            resultText.textContent = '';
            spinner.style.display = 'block';

            try {
                const response = await fetch(`${endpoint}?${params.toString()}`);
                
                if (!response.ok) {
                    throw new Error('خطا در بارگیری');
                }

                const data = await response.json();

                spinner.style.display = 'none';

                if (data.responseData && data.responseData.translatedText) {
                    resultText.textContent = data.responseData.translatedText;
                    copyButton.style.display = 'inline-block';
                } else {
                    resultText.textContent = 'ترجمه یافت نشد.';
                }
            } catch (error) {
                spinner.style.display = 'none';
                resultText.textContent = 'خطا در ترجمه.';
            }
        }

        // مدیریت دکمه کپی
        copyButton.addEventListener('click', function() {
            const translatedText = resultText.textContent.trim();

            if (translatedText === '' || translatedText === 'ترجمه.') {
                alert('هیچ متنی برای کپی کردن وجود ندارد.');
                return;
            }

            navigator.clipboard.writeText(translatedText).then(() => {
                successMessage.style.display = 'block';

                // مخفی کردن پیام بعد از 2 ثانیه
                setTimeout(() => {
                    successMessage.style.display = 'none';
                }, 2000);
            }).catch(err => {
                alert('کپی متن موفقیت‌آمیز نبود.');
            });
        });
    </script>
</body>
</html> این کد یکم زیباتر کن و اینکه جایی که متن فارسی قرار میدیم کادر اش اندازه یک خط باشه اما اگر متن بیشتر شد کادر هم اندازه متن بزرگ بشه دیگه