Blingo - Blog HTML Translator with AI
Pricing
Pay per usage
Blingo - Blog HTML Translator with AI
Scrapes blog pages and translates visible text content to multiple target languages using lingo.dev AI-powered localization, preserving HTML structure.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Lofomachines
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
a month ago
Last modified
Categories
Share
Blog HTML Translator
An Apify Actor that scrapes blog pages and translates all visible text content to multiple target languages using AI-powered localization, while preserving the original HTML structure.
🌟 Features
- Multi-language support: Translate to 30+ languages simultaneously
- HTML structure preservation: Keeps all HTML tags, attributes, and formatting intact
- Smart text extraction: Only translates visible user-facing text (ignores scripts, styles, hidden elements)
- Translation dictionary: Optionally outputs a JSON mapping of original texts to translations
- Auto language detection: Automatically detect source language or specify manually
- Concurrent processing: Fast translation with parallel API calls
- Detailed logging: Track progress and debug issues easily
📥 Input
| Field | Type | Required | Description |
|---|---|---|---|
blog_urls | Array | Yes | URLs of blog pages to translate |
source_language | String | No | Source language code or "auto" for detection |
target_languages | Array | Yes | Target language codes (e.g., ["es", "fr", "de"]) |
lingo_api_key | String | Yes | Your Lingo.dev API key |
include_translation_dictionary | Boolean | No | Include original→translated text mapping |
max_concurrent_pages | Integer | No | Max pages to process concurrently (1-10) |
request_timeout_secs | Integer | No | Timeout per page request (10-120 seconds) |
proxy_configuration | Object | No | Optional proxy settings |
Example Input
{"blog_urls": [{ "url": "https://blog.example.com/my-article" },{ "url": "https://blog.example.com/another-post" }],"source_language": "auto","target_languages": ["es", "fr", "de", "it"],"lingo_api_key": "your-api-key-here","include_translation_dictionary": true,"max_concurrent_pages": 3}
📤 Output
Dataset
Each translation produces a dataset item with:
{"url": "https://blog.example.com/my-article","page_title": "My Amazing Article","source_language": "en","target_language": "es","target_language_name": "Spanish","html_key": "html-my-article-a1b2c3d4_es","texts_extracted": 45,"texts_translated": 45,"word_count": 1250,"processing_time_ms": 3420,"status": "success","timestamp": "2024-01-15T10:30:00Z","translation_dictionary": {"Hello World": "Hola Mundo","Read more": "Leer más"}}
Key-Value Store
Translated HTML files are stored in the key-value store with keys like:
html-{url_slug}_{language_code}- Individual translated HTML filesSUMMARY- JSON summary of all translations
🌍 Supported Languages
| Code | Language | Code | Language |
|---|---|---|---|
| en | English | pl | Polish |
| es | Spanish | ru | Russian |
| fr | French | uk | Ukrainian |
| de | German | ja | Japanese |
| it | Italian | zh | Chinese |
| pt | Portuguese | ko | Korean |
| nl | Dutch | ar | Arabic |
| tr | Turkish | sv | Swedish |
| da | Danish | no | Norwegian |
| fi | Finnish | cs | Czech |
| hu | Hungarian | ro | Romanian |
| el | Greek | th | Thai |
| vi | Vietnamese | id | Indonesian |
| ms | Malay | hi | Hindi |
| bn | Bengali | ta | Tamil |
| te | Telugu | he | Hebrew |
| fa | Persian |
🔧 How It Works
- Scraping Phase: Uses Playwright to render JavaScript-heavy pages and extract full HTML
- Text Extraction: Parses HTML and extracts only visible text nodes (excluding scripts, styles, hidden elements)
- Translation: Sends text batches to AI localization engine for translation
- HTML Reconstruction: Replaces original texts with translations while preserving all HTML structure
- Output: Saves translated HTMLs to key-value store and metadata to dataset
⚡ Performance Tips
- Use
max_concurrent_pages: 1for rate-limited APIs - Set appropriate
request_timeout_secsfor slow-loading pages - Enable proxy if scraping sites with geo-restrictions
- Use auto language detection only when source language varies
🔑 Getting Your API Key
- Visit lingo.dev
- Create an account
- Navigate to Projects → API Key
- Copy your API key
📝 Use Cases
- Content localization: Translate blog posts for international audiences
- Website migration: Prepare content for multi-language CMS
- SEO expansion: Create localized versions for different markets
- Content analysis: Extract translation dictionaries for terminology management
⚠️ Limitations
- Large pages with many text nodes may take longer to process
- Some dynamically loaded content may not be captured
- Translation quality depends on the AI localization service
🐛 Troubleshooting
"Translation failed" errors: Check your API key is valid and has sufficient credits
Missing translations: Some text may be in elements not captured (try adjusting page load time)
Empty results: Ensure the URLs are accessible and contain visible text content