Plugin translations not installed but… strings are translated!

Yes, Recent Tweets Widget is one of the many plugins which their translations are managed through translate.wordpress.org, and this means that upon installing the plugin (*remember, installing and activating are different), WordPress (on your site) will automatically download the plugin’s language pack (.po and .mo files) from translate.wordpress.org, and then store the translation files in the WordPress languages directory which defaults to wp-content/languages.

But WordPress will only do that if a core/site language pack is found at wp-content/languages/<locale>.mo (see get_available_languages()), which in your case should be true — e.g. you might find the MO file at wp-content/languages/es_ES.mo.

And for plugins, the downloaded language packs are saved to wp-content/languages/plugins/<locale>.<mo|po>; so for example, the Recent Tweets Widget plugin where the text domain is recent-tweets-widget, you’d find the translations for the Spanish (Spain) locale (es_ES) in:

  • wp-content/languages/plugins/recent-tweets-widget-es_ES.mo
  • wp-content/languages/plugins/recent-tweets-widget-es_ES.po

Also, it should be noted that since WordPress 4.6, language pack found in the wp-content/languages/plugins directory takes precedence over the one in the plugin’s directory — which is normally loaded via load_plugin_textdomain() — so with the Recent Tweets Widget plugin as an example, if you had both wp-content/languages/plugins/recent-tweets-widget-es_ES.mo and wp-content/plugins/recent-tweets-widget/languages/recent-tweets-widget-es_ES.mo, the former will be automatically loaded and be used instead of the latter.

Hence, I believe that MO file is the source of that “ghost” translation. 🙂

(Well if your site’s locale is es_ES, but even if not, try looking for one of the other Spanish locales. Then try renaming the file, e.g. <locale>.mo.bak, and see if the “ghost” translation persists.)

Last but not least, when a plugin is deleted (and not simply deactivated), WordPress will also remove the plugin translation files in the wp-content/languages/plugins, so keep that in mind if you wish to edit those files/translations.

Further Reading