Using WordPress ‘mce_external_languages’ PHP filter

The mce_external_languages WordPress PHP filter allows you to manage translations for external TinyMCE 3.x plugins.

Usage

add_filter('mce_external_languages', 'your_custom_function', 10, 2);
function your_custom_function($translations, $editor_id) {
    // your custom code here
    return $translations;
}

Parameters

  • $translations (array): Translations for external TinyMCE plugins.
  • $editor_id (string): Unique editor identifier, e.g., ‘content’.

More information

See WordPress Developer Resources: mce_external_languages

Examples

Add Translation File for Custom Plugin

This code adds a translation file for a custom TinyMCE plugin called ‘my_custom_plugin’.

add_filter('mce_external_languages', 'add_my_custom_plugin_translation', 10, 2);
function add_my_custom_plugin_translation($translations, $editor_id) {
    $translations['my_custom_plugin'] = plugin_dir_path(__FILE__) . 'languages/my_custom_plugin_lang.php';
    return $translations;
}

Add Translation File for Multiple Plugins

This code adds translation files for multiple custom TinyMCE plugins.

add_filter('mce_external_languages', 'add_multiple_plugins_translation', 10, 2);
function add_multiple_plugins_translation($translations, $editor_id) {
    $translations['plugin_one'] = plugin_dir_path(__FILE__) . 'languages/plugin_one_lang.php';
    $translations['plugin_two'] = plugin_dir_path(__FILE__) . 'languages/plugin_two_lang.php';
    return $translations;
}

Remove Translation File for a Plugin

This code removes the translation file for a specific TinyMCE plugin.

add_filter('mce_external_languages', 'remove_plugin_translation', 10, 2);
function remove_plugin_translation($translations, $editor_id) {
    unset($translations['plugin_to_remove']);
    return $translations;
}

Modify Translation File for a Plugin

This code modifies the translation file for a specific TinyMCE plugin.

add_filter('mce_external_languages', 'modify_plugin_translation', 10, 2);
function modify_plugin_translation($translations, $editor_id) {
    $translations['plugin_to_modify'] = plugin_dir_path(__FILE__) . 'languages/modified_plugin_lang.php';
    return $translations;
}

Conditionally Add Translation File

This code adds a translation file for a custom TinyMCE plugin only if a specific condition is met.

add_filter('mce_external_languages', 'conditionally_add_translation', 10, 2);
function conditionally_add_translation($translations, $editor_id) {
    if (current_user_can('manage_options')) {
        $translations['conditional_plugin'] = plugin_dir_path(__FILE__) . 'languages/conditional_plugin_lang.php';
    }
    return $translations;
}