Order a module

DLE Multi-Language

A multilingual module for DLE with AI translation through GPT, Claude, Gemini and DeepSeek. Automatic content localisation, SEO optimisation and hreflang — all in a single DLE installation.
Version 2.0.0 PHP 8.1 DLE 19.0 — 21.0 Documentation

Full multilingual support for DLE — without duplicating the engine

DLE Multi-Language is a professional solution that makes your site truly multilingual within a single DLE installation, with one database and full support for search engine SEO requirements.

Add an unlimited number of languages, translate content by hand or with artificial intelligence (GPT, Claude, Gemini, DeepSeek), and give developers a flexible set of template tags for building any multilingual interface.

Features

1. URL structure and routing

  • Prefix-based URLs — every language gets its own prefix: site.com/en/, site.com/es/, site.com/de/. The default language lives on the root domain without a prefix, which matters for SEO.
  • Automatic URL rewriting — every internal link in the template gets the language prefix automatically. Developers don’t have to rewrite hrefs by hand.
  • Static resources are protected/uploads/, /templates/, /engine/, /language/ and the favicon never get a language prefix, so there are no 404 errors on images and CSS.
  • Any ISO code — a built-in database of more than 90 language codes (ISO 639-1) and 90+ country codes (ISO 3166-1), with reference tables right in the admin panel.
  • Translated SEO-friendly URL for every language — each item can have its own URL (alt_name) in each language. When a page is viewed in that language, the translated URL is used automatically in links, canonical, hreflang and the Sitemap.
  • Remembers the chosen language — the visitor’s language is stored in a cookie, and the site opens in that language on the next visit.
  • Browser language detection — on the first visit the site can open in the visitor’s language automatically, if it is on the list.

2. SEO for international search engines

  • Automatic hreflang — the module generates correct <link rel="alternate" hreflang="..."> tags for all active languages, including the x-default that Google requires.
  • Localised site meta tagshome_title, description, short_title and keywords can be set separately for each language in the system settings.
  • Four strategies for untranslated pages:
    • Fallback — show the original content
    • Strict Mode — clear the fields and show empty values
    • 404 Not Found — return an error to the search engine
    • Redirect — a 301 redirect to the home page
  • Hide untranslated content in lists — exclude news without a translation from the home page, categories and search results for a given language.
  • Your own translation criteria — the administrator decides which fields (Title / Short Story / Full Story) must be filled in for an item to count as translated.

3. Language files (.lng) and the translation editor

  • A visual .lng editor — no more editing files over FTP. All keys are shown in a clear table with the original and the translation side by side.
  • Missing translations are highlighted — untranslated keys show up in red, and a counter tells you how many lines are left.
  • Instant search — a live filter by key and by text, with no page reload.
  • Your own .lng files — add custom files (for example my_design.lng) to translate elements of your design.
  • Import translations from other languages — a two-step wizard copies the contents of a .lng file between any language folders.
  • DLE system files are protected — keys from adminpanel.lng, website.lng and other original DLE files cannot be deleted by accident.

4. Automatic AI translation

  • Four AI providers:
    • OpenAI — GPT-5.4 Pro, GPT-5.4 Thinking, GPT-5.4 Mini, GPT-4o
    • Anthropic Claude — Claude Opus 4.6, Claude Sonnet 4.6
    • Google Gemini — Gemini 3.1 Pro, Gemini 3 Flash, Gemini 3.1 Flash-Lite
    • DeepSeek AI — an economical choice for large volumes
  • Switch providers on the fly — compare the translation quality of different models without touching the code.
  • One key, one button — for pinpoint edits.
  • Batch AI translation of a whole file — with a progress bar, smart batching of 5 keys per request and automatic retries on network errors.
  • Skip Existing mode — translate only empty keys and leave finished translations alone.
  • Technical elements stay intact — the AI gets special instructions to leave variables like {user}, HTML tags and DLE markup untouched.
  • News content translation — a separate mechanism translates the title, short description and full text of news, keeping every HTML tag, style and the structure of the document.

5. Template tags for developers

The module adds a powerful set of tags that work in any DLE .tpl template:

  • {lang=key} — output any string from a .lng file directly in the template.
  • {lang-code} — the two-letter ISO code of the current language (handy for <html lang="...">).
  • {home-url} — the absolute home page URL, including the current language prefix.
  • {site-title}, {site-description}, {site-name} — localised site metadata.
  • [if_lang=en,ru]...[/if_lang] — show a block only for the listed languages.
  • [not_lang=en]...[/not_lang] — show a block to everyone except the listed languages.

6. The language switcher — {lang-select}

One tag — dozens of design options, no JavaScript to write:

  • Four display types:
    • links — a horizontal or vertical list of links
    • dropdown — an animated drop-down list
    • select — a native HTML select (great on mobile)
    • auto — switches automatically: dropdown on desktop, select or links on mobile
  • Choose what to show — flag, name, native name and code, in any combination, through the show parameter.
  • Themes and sizes — light/dark and sm/md/lg through CSS variables.
  • Animations — fade, slide and other dropdown effects.
  • Positioning — bottom-left, bottom-right, top-left, top-right.
  • Open on — click or hover.
  • Order control — the order parameter sets any language order, exclude hides the ones you don’t need.
  • Custom names — the names parameter sets your own labels for any language.
  • Responsive breakpoint — a configurable point where the desktop version switches to mobile.
  • Full accessibility — ARIA attributes, keyboard support and hreflang attributes on every link.

7. Custom switchers with {lang-select-loop}

For developers who want full control over the switcher’s HTML, the module offers a loop tag with its own templating:

  • Loop variables: {ls-url}, {ls-code}, {ls-CODE}, {ls-name}, {ls-name-native}, {ls-flag}, {ls-flag-url}, {ls-active}, {ls-selected}, {ls-index}, {ls-count}, {ls-odd}, {ls-even}.
  • Conditional blocks: [if_ls_active], [if_ls_inactive], [if_ls_first], [if_ls_last], [if_ls_odd], [if_ls_even].
  • Build any custom interface — language cards with flags, tab switchers, grouped mega menus — all within a regular HTML template.

8. DLE XFields (additional fields) support

  • Automatic XField cloning — when a new language is added, all existing additional fields are duplicated automatically with a language suffix.
  • A separate field group per language — in the DLE admin panel the fields to translate are grouped under Multi-Language: [ISO].
  • Clean removal — when a language is deleted, all its localised XFields are removed with it, leaving no junk in the database.

9. Safe installation and removal of languages via AJAX

  • Step-by-step installation with a progress bar — every operation (creating the folder, copying files, adding database columns, setting up XFields) runs in stages.
  • Resilient to 504 timeouts — the module reconnects automatically after network errors and continues from the same step.
  • Clone from an existing language — when creating a new language, copy all .lng files from any existing folder to speed up localisation.
  • Flag icons installed automatically — the module picks the right country icon from its built-in database even when the language ISO code differs from the country code (for example, en → the gb flag).
  • Safe change of the default language — a step-by-step background migration moves content between the main and language fields in the database without losing data, so you can change the site’s main language even after it has been filled.

10. A professional admin panel

  • A dashboard with statistics — module status, number of active languages and the default language on one screen.
  • A built-in ISO code reference — pop-ups with every language and country code, flag and name. Click a row and the code is inserted into the form.
  • ISO code validation — the module warns you immediately if you try to use a country code instead of a language code (a common SEO mistake).
  • Update checks — automatic and manual checks for new versions, with the changelog shown right in the admin panel.
  • A multilingual admin interface — the whole module is built on .lng files and can be translated into any language.

11. Compatibility and performance

  • DataLife Engine — all current versions, including 19.x and newer.
  • PHP — compatible with PHP 7.4 – 8.x.
  • One database — no duplicated records, only extra columns.
  • Minimal performance impact — the module works at the template engine level and does not affect DLE’s main queries.

Who it is for

  • News sites reaching an international audience.
  • Corporate portals that need localisation for different regions.
  • Blogs and information projects that need SEO visibility in several countries.
  • Travel and event sites that simply must work in several languages.
  • Any DLE project that wants to go multilingual without moving to another CMS.

What you get

  • Full multilingual support within a single DLE installation.
  • Automatic translation of content and interface with the leading AI models of 2026.
  • Correct SEO for Google, Yandex and other search engines.
  • A flexible toolkit for building language switchers without writing JavaScript.
  • An intuitive translation editor that saves dozens of hours of work with .lng files.
  • Professional technical support and regular updates.

DLE Multi-Language turns your single-language site into a full international publication in a few clicks — painlessly, without duplicating the engine and without losing SEO.

Screenshots

Click a screenshot to zoom in

Choose a suitable plan

We offer flexible licensing options depending on your needs.

Standard
$60
  • 3 sites
  • Open source code
  • Support 12 months
  • No updates
  • Downloads 7 days
Recommended
Extended
$72
  • All Standard features
  • 10 sites
  • Priority support
  • Updates 12 months
  • Downloads 12 months
Premium
$144
  • All Extended features
  • Unlimited number of sites
  • Personal consultations
  • Updates forever
  • Downloads forever
  • Installation and setup
  • Adapted to your website (including code refinement)

A site is a domain together with all its subdomains.

Version history

  1. 2.0.0 current 3 New 2 Improved 2 Fixed

    New 3

    • Support for DLE 21.0.
    • Comments by language: each language version of a post has its own comments and correct counters, including when more comments are loaded and when a new one is posted.
    • Language flags on the fields of categories, static pages, settings, user groups and the tag cloud — without a duplicate language-code label.

    Improved 2

    • The default language now lives in DLE’s own fields: no separate tab and no duplicates when adding or editing news.
    • Extra fields of all types are translated correctly, including repeatable and hidden ones; the language copies of a field are created, renamed and deleted together with the original field.

    Fixed 2

    • The “Empty translated extra fields” setting did not work correctly with some field types.
    • DLE 19.0: some of the module’s changes were not applied — now all of them are.
  2. 1.0.3 8 New 7 Improved 9 Fixed

    New 8

    • Добавлен умный hreflang: язык объявляется в альтернативных ссылках только если материал действительно переведён. Поисковые системы больше не переходят по альтернативам, ведущим на 404 или на дубль контента.
    • Добавлена панель полноты перевода на главной странице модуля: процент переведённого по новостям, категориям, статическим страницам и файлам интерфейса для каждого языка.
    • Добавлено обновление списка AI-моделей одной кнопкой: список загружается напрямую от провайдера и сохраняется, поэтому новые модели доступны без обновления модуля. Рядом добавлена кнопка проверки соединения, которая тестирует ключ, модель и прокси.
    • Добавлено управление языками: смена папки языка, изменение порядка в переключателе и отключение языка без удаления переведённого контента.
    • Добавлены экспорт и импорт языковых файлов в форматах JSON и CSV, включая выгрузку только непереведённых строк — удобно для передачи переводчику.
    • Добавлена настройка поведения переключателя для непереведённых страниц: показывать ссылку как обычно, скрывать язык или вести на главную этого языка.
    • Языковые карты сайта теперь автоматически подключаются к основному sitemap.xml, поэтому поисковые системы находят их без ручной настройки.
    • Расширена транслитерация ЧПУ (alt_name): добавлены армянский, греческий, грузинский, арабский, иврит, персидский, а также казахский и другие кириллические варианты. Для иероглифических языков предусмотрен запасной вариант вместо пустого адреса.

    Improved 7

    • Устаревшие названия AI-моделей теперь переносятся автоматически, поэтому сохранённая ранее модель не остаётся неработающей после переименования у провайдера.
    • Поисковые роботы больше не перенаправляются автоматически на другой язык: робот получает именно тот адрес, который запросил. Прежнее поведение можно вернуть отдельной настройкой.
    • Автоматическое перенаправление больше не применяется к RSS, ajax-запросам и файлам, чтобы не ломать ленты и сторонние интеграции.
    • Кеш страниц теперь очищается автоматически при изменении настроек и списка языков.
    • Снижена нагрузка на сайт: языковые файлы админпанели, установщика и самого модуля больше не подключаются при каждом обращении посетителя.
    • Проверка обновлений теперь использует собственный суточный кеш и не обращается к серверу обновлений при каждом открытии страницы модуля.
    • Cookie выбранного языка теперь выставляется с атрибутами SameSite и Secure.

    Fixed 9

    • Исправлена ошибка 404 на ссылках вида /xx/index.php?do=register, ?do=lostpassword, ?action=logout и других: адреса больше не содержат index.php и открываются на всех серверах, включая nginx.
    • Исправлена форма поиска на языковых страницах, которая отправляла запрос на несуществующий адрес.
    • Исправлена невозможность вернуться на язык по умолчанию при включённом запоминании языка: выбор в переключателе теперь сохраняется корректно для всех типов переключателя.
    • Исправлена отдача 403 вместо 404 для непереведённых материалов и статических страниц в режиме «Отдавать 404».
    • Исправлена ошибка SQL в пользовательских блоках {custom} с постраничной навигацией при включённом скрытии непереведённых материалов.
    • Исправлена работа модуля в подкаталоге сайта: пути к флагам, изображениям и перенаправлениям больше не задаются жёстко от корня домена.
    • Исправлен редактор переводов: определение папки языка по умолчанию, критическая ошибка при открытии некоторых языковых файлов на PHP 8 и неработавшая проверка дубликата ключа.
    • Исправлена потеря языка у форм, отправляющих данные на корень сайта.
    • Устранены предупреждения PHP и возможные конфликты функций при одновременной работе с другими модулями.
  3. 1.0.2 4 New 2 Fixed

    New 4

    • Добавлен переводимый ЧПУ (alt_name) для каждого языка: отдельное поле URL в форме добавления и редактирования материала с AI-генерацией слага. При просмотре на другом языке переведённый URL используется в ссылках, canonical, hreflang и Sitemap.
    • Добавлено запоминание выбранного языка посетителя через cookie: при следующем заходе на сайт без префикса посетитель автоматически перенаправляется на свой язык.
    • Добавлено автоопределение языка посетителя по настройкам браузера: если язык есть в списке, посетитель сразу перенаправляется на него.
    • Добавлена безопасная смена языка по умолчанию: пошаговая фоновая (AJAX) миграция, которая переносит контент между основными и языковыми полями БД. Предусмотрены предупреждения о рисках, счётчик материалов, защита от прерывания и резервная копия конфигурации.

    Fixed 2

    • Добавлены отсутствующие сообщения об ошибках AI-провайдеров (OpenAI, Claude, Gemini, DeepSeek).
    • Добавлены недостающие переводы настроек дополнительных полей в украинской локализации.
  4. 1.0.1 3 New 4 Fixed

    New 3

    • Добавлена полноценная поддержка DataLife Engine 20.0: обновлены XML-модификации и разделены операции для DLE 19.0–19.1 и DLE 20.0+
    • Добавлена поддержка прокси, SOCKS5 и SOCKS5H для AI-провайдеров с отдельной вкладкой настроек.
    • Добавлена настройка поведения пустых дополнительных полей: использовать значение основного языка либо не отображать поле.

    Fixed 4

    • Исправлена загрузка языкового файла ml.lng и отображение текстов модуля в административной панели.
    • Исправлено размножение обратных слешей при повторном сохранении материалов.
    • Исправлено создание и редактирование языковых .lng-файлов: массивы и сложные значения теперь сохраняются в исходном PHP-формате.
    • Исправлена многоязычная работа поиска, статических страниц, тегов, новостей, Sitemap и Google News.
  5. 1.0.0 1 New

    New 1

    • Первый релиз модуля
Comments 4

Sign in to leave a comment.

Worldquotes Member
Я загружаю два шаблона один основа русский , второй англ ? или как работает ?
Здравствуйте! Нет, два шаблона загружать не нужно — модуль так не работает.

Вы используете один ваш шаблон, а модуль уже внутри него переключает языки. Для этого есть специальные теги — вы просто отмечаете ими те места, где текст должен меняться (меню, кнопки, блоки и т.д.), и модуль сам подставляет нужный язык по URL (/en/, /de/ и т.п.).

Заголовки сайта, описания, статические страницы и новости переводятся прямо в админке — отдельными полями под каждый язык. Никаких копий шаблона делать не надо.
Worldquotes Member
А если у меня много строк кода внутри шаблона с текстом внутри он тоже переведет скрипты?
Скрипты имееют 9к строк
В целом, если это код, он его не будет переводить, но, конечно, всё зависит от промпта. Код открыт, поэтому можно просто задать инструкцию: если распознаётся, что это код (даже в обычном текстовом формате), то пропускать его и не переводить .