i18n – Multilingual Translation and Language Routing for MODX

Multilingual translations and language routing for MODX

Creator: Denys Lukashevych (Gren_Studio)

Need help installing this extra?

Screenshots

About i18n – Multilingual Translation and Language Routing for MODX

i18n is a key-based multilingual translation component for MODX 3. It stores translations in the database, provides a snippet for output, and includes a built-in language routing plugin for clean URLs like /en/ or /ru/. Designed for projects that require multilingual support without using MODX contexts.

Information

Released
March 17, 2026

Supported Database
MySQL

License
Commercial

Instructions

Installation Instructions

The i18n package is installed using the standard MODX Package Manager.

Installation

  • Download the i18n package (ZIP file).
  • In the MODX Manager, go to Extras → Installer.
  • Click Add New Package, upload the ZIP file, and complete the installation.

Required Configuration

  • MODX 3.x+
  • PHP 7.4 | PHP 8.1 | PHP 8.2 | PHP 8.3
  • Ensure friendly_urls is enabled in MODX System Settings.
  • Make sure the standard MODX .htaccess file is present in the site root (rename ht.access to .htaccess if needed).
  • Verify that ionCube Loader and the PHP sodium extension are installed and enabled on the server.

Language Routing (Optional)

  • Enable the i18nLangRoute plugin in the MODX Manager.
  • The plugin provides automatic language routing using URL prefixes such as /en/ or /ru/.
  • The default language is served from the root URL (/) with automatic fallback handling.

Initial Usage

  • Open Extras → i18n in the MODX Manager.
  • Create a new translation key and define values for the required languages.
  • Use the [[!i18nKey]] snippet in templates, chunks, or resources to output translations.

Trial Mode

After the initial check-in process, a 14-day trial mode is automatically activated. A commercial license is required for continued production use after the trial period.

New in 1.2.0-pl0

1.2.0 (pl)

Added

  • Bulk i18n resolution (single-pass translation instead of per-item snippet calls).
  • Canonical runtime option i18n.current_lang for consistent language access across module.

Improved

  • Language detection refactored: URL is now the single source of truth.
  • Unified language persistence (cookie + session + runtime option).
  • Removed double cookie writes causing inconsistent language state.
  • Fixed language race condition when switching from non-default to default language.
  • Reduced redundant DB queries in menu + i18n resolution.

Fixed

  • Duplicate Set-Cookie header for language cookie.
  • i18n Manager button translation fallback issue after interaction.
  • Incorrect cache invalidation timing in manager settings.
  • Fixed uninstall cleanup (removed orphaned static plugins/snippets to prevent errors).

Changed

  • i18nLangRoute is now the primary language initialization handler.
  • i18nInitLang responsibility deprecated.
  • Cookie configuration unified (HttpOnly + SameSite=Lax).

Current releases

1.2.0-pl0
View | Download
March 17, 2026
3.0 - <3.1