Spaces:
Sleeping
Sleeping
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Document Translator Demo</title> | |
| <link rel="stylesheet" href="/static/style.css"> | |
| </head> | |
| <body> | |
| <div class="container"> | |
| <header> | |
| <h1>🌐 Document Translator</h1> | |
| <p>Upload a document to translate it into multiple languages with audio narration</p> | |
| </header> | |
| <main> | |
| <div class="upload-section"> | |
| <div class="upload-area" id="uploadArea"> | |
| <svg class="upload-icon" viewBox="0 0 24 24" fill="currentColor" stroke="none"> | |
| <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3"></path> | |
| </svg> | |
| <p>Drag & drop your document here</p> | |
| <p class="file-types">Supports: PDF, DOCX, TXT, Markdown</p> | |
| <button class="browse-btn" onclick="document.getElementById('fileInput').click()">Browse Files</button> | |
| <input type="file" id="fileInput" accept=".pdf,.docx,.txt,.md" style="display: none;"> | |
| </div> | |
| </div> | |
| <div class="language-selector" id="languageSelector" style="display: none;"> | |
| <label for="targetLanguage">Translate to:</label> | |
| <select id="targetLanguage"> | |
| <option value="en-hi">Hindi</option> | |
| <option value="en-fr">French</option> | |
| <option value="en-es">Spanish</option> | |
| <option value="en-de">German</option> | |
| <option value="en-zh">Chinese</option> | |
| <option value="en-ja">Japanese</option> | |
| <option value="en-ar">Arabic</option> | |
| </select> | |
| <button class="translate-btn" id="translateBtn">Translate Document</button> | |
| </div> | |
| <div class="progress-section" id="progressSection" style="display: none;"> | |
| <div class="progress-bar"> | |
| <div class="progress-fill" id="progressFill"></div> | |
| </div> | |
| <p class="progress-text" id="progressText">Processing...</p> | |
| </div> | |
| <div class="results-section" id="resultsSection" style="display: none;"> | |
| <div class="document-viewer"> | |
| <div class="viewer-pane"> | |
| <h3>Original Text</h3> | |
| <div class="text-content" id="originalText"></div> | |
| </div> | |
| <div class="viewer-pane"> | |
| <h3>Translated Text</h3> | |
| <div class="text-content" id="translatedText"></div> | |
| </div> | |
| </div> | |
| <div class="audio-section"> | |
| <h3>Audio Narration</h3> | |
| <audio controls id="audioPlayer" style="width: 100%;"></audio> | |
| <button class="generate-audio-btn" id="generateAudioBtn">Generate Audio</button> | |
| </div> | |
| <div class="download-section"> | |
| <h3>Download Results</h3> | |
| <div class="download-buttons"> | |
| <button class="download-btn" id="downloadTextBtn"> | |
| <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> | |
| <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path> | |
| <polyline points="7 10 12 15 17 10"></polyline> | |
| <line x1="12" y1="15" x2="12" y2="3"></line> | |
| </svg> | |
| Download Translation | |
| </button> | |
| <button class="download-btn" id="downloadAudioBtn" disabled> | |
| <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> | |
| <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path> | |
| <polyline points="7 10 12 15 17 10"></polyline> | |
| <line x1="12" y1="15" x2="12" y2="3"></line> | |
| </svg> | |
| Download Audio | |
| </button> | |
| </div> | |
| </div> | |
| <button class="new-document-btn" onclick="location.reload()">Translate Another Document</button> | |
| </div> | |
| </main> | |
| </div> | |
| <script src="/static/script.js"></script> | |
| </body> | |
| </html> |