{"id":29953739,"url":"https://github.com/bocaletto-luca/polyglotpal","last_synced_at":"2025-08-03T15:11:12.836Z","repository":{"id":305418679,"uuid":"1022833930","full_name":"bocaletto-luca/PolyglotPal","owner":"bocaletto-luca","description":"PolyglotPal is a client-side, single-page web application that instantly translates text between over 100 languages. It features speech synthesis with selectable voices, phrase history with import/export/clear, favorites, copy \u0026 download, and light/dark mode—all without sending your text to any server. @bocaletto-luca","archived":false,"fork":false,"pushed_at":"2025-07-20T00:52:42.000Z","size":63,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-20T01:57:52.569Z","etag":null,"topics":["bocaletto-luca","css3","html-css-javascript","html5","javascript","online","opensource","polyglot","polyglot-pal","translate","translater","webapp"],"latest_commit_sha":null,"homepage":"https://bocaletto-luca.github.io/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bocaletto-luca.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-19T23:50:49.000Z","updated_at":"2025-07-20T00:55:48.000Z","dependencies_parsed_at":"2025-07-20T01:57:54.547Z","dependency_job_id":"e4c92079-1031-4b06-bff6-0ee2b8407153","html_url":"https://github.com/bocaletto-luca/PolyglotPal","commit_stats":null,"previous_names":["bocaletto-luca/polyglotpal"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/bocaletto-luca/PolyglotPal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bocaletto-luca%2FPolyglotPal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bocaletto-luca%2FPolyglotPal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bocaletto-luca%2FPolyglotPal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bocaletto-luca%2FPolyglotPal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bocaletto-luca","download_url":"https://codeload.github.com/bocaletto-luca/PolyglotPal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bocaletto-luca%2FPolyglotPal/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268563861,"owners_count":24270661,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bocaletto-luca","css3","html-css-javascript","html5","javascript","online","opensource","polyglot","polyglot-pal","translate","translater","webapp"],"created_at":"2025-08-03T15:11:01.843Z","updated_at":"2025-08-03T15:11:12.821Z","avatar_url":"https://github.com/bocaletto-luca.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PolyglotPal\n\nPolyglotPal is a client-side, single-page web application that instantly translates text between over 100 languages. It features speech synthesis with selectable voices, phrase history with import/export/clear, favorites, copy \u0026 download, and light/dark mode—all without sending your text to any server.\n\n---\n\n## Live Demo\n\nView it on GitHub Pages:  \nhttps://bocaletto-luca.github.io/PolyglotPal\n\n---\n\n## Features\n\n- **100+ Languages**  \n  Translate between dozens of languages, from English, Spanish, French, German to Hindi, Vietnamese, Ukrainian and more.\n\n- **Client-Side Only**  \n  All translation requests use the MyMemory public API; speech synthesis and UI run entirely in your browser.\n\n- **Speech Synthesis**  \n  Pick from your system’s installed voices and listen to translations aloud.\n\n- **Phrase History**  \n  Automatically saves your last 50 translations.  \n  - **Import/Export** your history to JSON  \n  - **Clear** your history with one click\n\n- **Favorites**  \n  Bookmark any translation for quick recall.\n\n- **Copy \u0026 Download**  \n  One-click copy of the translated text to clipboard or download as a `.txt` file.\n\n- **Light \u0026 Dark Mode**  \n  Toggle between light and dark themes for comfortable reading.\n\n- **No Dependencies**  \n  Pure HTML, CSS, and JavaScript. No build tools, no frameworks—just a single `index.html`.\n\n---\n\n## Installation\n\n1. **Clone the repository**  \n   ```bash\n   git clone https://github.com/bocaletto-luca/PolyglotPal.git\n   cd PolyglotPal\n   ```\n\n2. **Serve the app locally**  \n   Modern browsers block `fetch()` on `file://`, so you must use a simple HTTP server:\n\n   - **Python 3**  \n     ```bash\n     python3 -m http.server 8000\n     ```\n   - **Node.js (http-server)**  \n     ```bash\n     npx http-server . -p 8000\n     ```\n   - **Ruby**  \n     ```bash\n     ruby -run -e httpd . -p 8000\n     ```\n\n3. **Open in browser**  \n   Navigate to `http://localhost:8000/index.html`.\n\n---\n\n## Usage\n\n1. **Select Languages**  \n   - Use the two dropdowns to pick your source and target languages.\n\n2. **Enter Text**  \n   - Type or paste text into the top textarea. Press **Enter** or click **Translate**.\n\n3. **View Translation**  \n   - The translated text appears in the bottom textarea.\n\n4. **Speak Translation**  \n   - Choose a voice from the **Voice** dropdown, then click **🔊 Speak** to hear it.\n\n5. **Copy or Download**  \n   - Click **📋 Copy** to copy to clipboard, or **⬇️ Download .txt** to save as a text file.\n\n6. **Manage History**  \n   - Your most recent translations show under **History**.  \n   - **Export** to JSON, **Import** a JSON file, or **Clear** all history.\n\n7. **Favorites**  \n   - Click the star icon next to any history entry to add/remove from **Favorites**.\n\n8. **Toggle Theme**  \n   - Click the **🌙/☀️** button to switch between dark and light modes.\n\n---\n\n## File Structure\n\n```\nPolyglotPal/\n├── index.html       # Single-page application\n├── LICENSE          # GNU GPL v3\n└── README.md        # This documentation\n```\n\n---\n\n## Contributing\n\nBug reports, feature requests, and pull requests are welcome!\n\n1. Fork the repo  \n2. Create a branch: `git checkout -b feature/YourFeature`  \n3. Commit your changes: `git commit -m \"Add YourFeature\"`  \n4. Push: `git push origin feature/YourFeature`  \n5. Open a pull request on GitHub\n\nPlease test your changes and keep the code style consistent.\n\n---\n\n## License\n\nThis project is open source under the **GNU General Public License v3.0**. See [LICENSE](LICENSE) for details.\n\n---\n\n## Author\n\n**Bocaletto Luca**  \n- GitHub: [@bocaletto-luca](https://github.com/bocaletto-luca)  \n- Repository: [PolyglotPal](https://github.com/bocaletto-luca/PolyglotPal)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbocaletto-luca%2Fpolyglotpal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbocaletto-luca%2Fpolyglotpal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbocaletto-luca%2Fpolyglotpal/lists"}