=== Performant Translations === Contributors: swissspidy, dd32, wordpressdotorg Tested up to: 6.5 Stable tag: 1.2.0 License: GPL-2.0+ License URI: https://www.gnu.org/licenses/gpl-2.0.html Tags: performance, i18n, translation, localization, internationalization Making internationalization/localization in WordPress faster than ever before. == Description == This project uses a new approach to handle translation files in WordPress, making localization blazing fast. An [in-depth i18n performance analysis](https://make.wordpress.org/core/2023/07/24/i18n-performance-analysis/) showed that localized WordPress sites load significantly slower than a site without translations. With this plugin's new approach to localization, this overhead is massively reduced, making your site fast again. If your site is using a language other than English (US), you should see immediate speed improvements simply by activating this plugin. === WordPress 6.5 and newer === **Important:** this new functionality has been merged into WordPress 6.5! However, this plugin is still useful! On WordPress 6.5+, this plugin automatically converts existing `.mo` files to `.php` and afterwards only loads the translations from the `.php` file. This is useful for cases where language packs are not downloaded from WordPress.org but somewhere else. == Installation == = Installation from within WordPress = 1. Visit **Plugins > Add New**. 2. Search for **Performant Translations**. 3. Install and activate the Performant Translations plugin. = Manual installation = 1. Upload the entire `performant-translations` folder to the `/wp-content/plugins/` directory. 2. Visit **Plugins**. 3. Activate the Performant Translations plugin. == Screenshots == 1. Chart showing the load time improvement achieved with this plugin. == Frequently Asked Questions == = What makes this plugin so fast? = By converting `.mo` files to `.php` files, the translations can be parsed much faster. Plus, `.php` files can be stored in the so-called [OPcache](https://www.php.net/manual/en/book.opcache.php), which provides an additional speed boost. = Can I use this plugin on my production site? = While the plugin is mostly considered to be a beta testing plugin, it has been tested and established to a degree where it should be okay to use in production. Still, as with every plugin, you are doing so at your own risk. = Has this plugin been tested with other multilingual plugins? = Yes. This plugin has been tested with common multilingual plugins, such as WPML, Weglot, TranslatePress, MultilingualPress, and Polylang. If you still encounter issues, please let us know. = Do I need to do anything special to enable this plugin? = No. Once the plugin is activated, it just works, and you should see speed improvements right away. If you run into issues, please open a new support topic. = Can I safely remove this plugin after installation? = Yes. Once you deactivate and uninstall the plugin, all `.php` files generated by it will be removed from the server. = How can I contribute to the plugin? = Contributions are always welcome! Learn more about how to get involved in the [Core Performance Team Handbook](https://make.wordpress.org/performance/handbook/get-involved/). = Where can I submit my plugin feedback? = If you have suggestions or requests for new features, you can submit them as an issue on the [GitHub repository](https://github.com/swissspidy/performant-translations). If you need help with troubleshooting or have a question about the plugin, please [create a new topic on our support forum](https://wordpress.org/support/plugin/performant-translations/#new-topic-0). = Where can I report security issues? = To report a security issue, please visit the [WordPress HackerOne](https://hackerone.com/wordpress) program. == Changelog == For the plugin's full changelog, please see [the Releases page on GitHub](https://github.com/swissspidy/performant-translations/releases). = 1.2.0 = * This plugin now requires WordPress 6.5 = 1.1.2 = * Fixed a minor regression when assembling file paths to look up. = 1.1.1 = * Fixed: Addressed a slight performance regression in 1.1.0. * Fixed: Addressed an issue with incorrect plural forms for certain locales. = 1.1.0 = * Enhancement: Support for this functionality existing in WordPress 6.5. * Enhancement: Added hardening for file paths not being strings because of a faulty plugin filter. * Enhancement: Invalidate OPcache after writing PHP files. * Enhancement: Improve compatibility with pluralized strings referenced as singulars. = 1.0.9 = * Enhancement: Improved compatibility with WPML string translation add-on. = 1.0.8 = * Fixed: Added workaround for potential file permission issues. = 1.0.7 = * Fixed: Prevent issue where not all core translations were updated. * Enhancement: Change the order translations are loaded in to improve backward compatibility. = 1.0.6 = * Enhancement: Remove JSON file support. * Fixed: Add hardening when using translation file paths with symlinks. = 1.0.5 = * Enhancement: Improved compatibility with Loco Translate to avoid duplicate files. = 1.0.4 = * Enhancement: Several minor performance improvements. * Enhancement: Use different file extension (`.mo.php` instead of just `.php`) to prevent conflicts. * Enhancement: "Import" existing translation file if one is already loaded for a text domain. * Enhancement: Use WP Filesystem API if available. = 1.0.3 = * Enhancement: Improved compatibility with Query Monitor's developer tools panel. * Enhancement: Added new `performant_translations_load_translation_file` filter. * Enhancement: Enforce network-only activation on Multisite. = 1.0.2 = * Fixed: Add hardening for invalid values being passed to translation functions. = 1.0.1 = * Enhancement: Regenerate translation files when Loco Translate updates MO files. * Fixed: Add hardening for invalid context being passed. * Fixed: Fix handling of locales without plurals, such as Persian. = 1.0.0 = * Initial release. == Upgrade Notice == = 1.2.0 = Bumps the minimum WordPress version to 6.5.