This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Cached l10n

Description

Upon inspection using xhProf, I realized that the PHP implementation loading the MO files is really slow.
From my tests, about 25% to 40% of the time WordPress spends rendering the page is actually spent locating, parsing and merging all the translation files.

This plugin works by caching the whole $l10n variable holding all the text domains and overridding the load_textdomain.

Caching is done using serialize and written to wp-content/uploads/l10n.pson.
Be sure to regenerate the cache if a .mo changes.

TODO

  • Provide a better UI page

Speed comparison

Comparing WordPress Gettext loading vs this plugin.

Using the average response time of:
siege -c 1 -r 100 -b http://localhost/

Vanilla: Fresh install of WordPress
Common: WPML, Types, Views, and Gravity Forms
Total Cache: Common + Total Cache (APC object/database cache, no page cache)
BuddyPress: BP-Registration-Options, BP Show Friends, BuddyPress, BuddyPress Activity Plus, Gravity Forms, Invite Anyone, U BuddyPress Forum Attachment, U BuddyPress Forum Editor, User Switching

            Vanilla         Common          Total Cache     BuddyPress
Native      202 ms          565 ms          478 ms          567 ms
Cached      193 ms (-5%)    322 ms (-43%)   333 ms (-30%)   431 ms (-24%)

Installation

wp-content/uploads/l10n.pson must be writable

  1. Activate plugin
  2. Go to plugin’s settings page
  3. Hit the regenerate button
  4. WP_DEBUG must be false

Reviews

Read all 3 reviews

Contributors & Developers

“Cached l10n” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Cached l10n” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

0.2.2

  • Refactored code
  • Fixed small issues

0.2

  • Refactored code
  • Added some detection when translations change

0.1

  • Orignal submission