WP Manifestindependent plugin directory
manifest / i18n / simple-translation-manager

Simple Translation Manager

Lightweight WordPress multilingual plugin with database storage, REST API, and WordPress caching

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/martiendejong/simple-translation-manager/archive/refs/heads/master.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Lightweight multilingual WordPress plugin with database storage, REST API, and built-in caching.

Features

  • ✅ Database Storage - All translations stored in custom database tables
  • ✅ WordPress Caching - Built-in object cache support for performance
  • ✅ REST API - Full API for programmatic translation management
  • ✅ Admin Interface - Search, pagination, inline editing
  • ✅ Post Translations - Support for translating CPT fields
  • ✅ Elementor Integration - Translate Elementor widget content (including templates/global widgets) per language, with an in-editor translation panel
  • ✅ URL Routing - Clean language URLs (/en/, /nl/)
  • ✅ Fully Generic - Works with any WordPress site

Installation

  1. Upload plugin folder to /wp-content/plugins/
  2. Activate plugin via WordPress admin
  3. Go to Translations → Languages to configure languages
  4. Go to Translations → Strings to add translations

Configuration

Default Languages

By default, the plugin installs English and Dutch. To use different languages, add this filter to your theme's functions.php:

add_filter('stm_default_languages', function($languages) {
    return [
        [
            'code' => 'es',
            'name' => 'Spanish',
            'native_name' => 'Español',
            'is_default' => 1,
            'flag_emoji' => '🇪🇸',
            'order_index' => 1
        ],
        [
            'code' => 'fr',
            'name' => 'French',
            'native_name' => 'Français',
            'is_default' => 0,
            'flag_emoji' => '🇫🇷',
            'order_index' => 2
        ],
    ];
});

Note: Add this filter BEFORE activating the plugin for the first time.

License

GPL v2 or later