Howdy plugin authors!
In case you haven’t heard, WordPress.org will be expanding the services we provide to you, offering language packs to all plugins. This post is to outline exactly what the plan is and when your plugin will take part.
Over the past few months, the meta team has been working behind the scenes to enable language packs for themes and plugins, just like the ones core has. Language packs on WordPress.org are powered by translate.wordpress.org and the polyglots team, who translate WordPress.
As of today, all themes have been imported into translate.wordpress.org and can take advantage of language packs (see also). We chose to import themes first to work out any weirdness with translate.wordpress.org, which has never seen this many projects. There were a few bumps along the way, but language packs are now flowing for themes and we’ve added a number of improvements to translate.wordpress.org to make it the process easier for translators.
Now, it’s time to do the same for plugins.
The gist of plugin translations are as follows (see the FAQ below for more information):
- Eventually, all active plugins will be imported into translate.wordpress.org and made available for translation. However, we will import them in phases.
- Upon import, if you have any translations, we will import them into translate.wordpress.org. This only happens during initial import.
- Before importing your plugin, we will email you when your plugin is in the next “batch” of imports. You should ensure that all translations are up-to-date.
- If you do not wish to use language packs, you may continue to ship translations with your plugin.
I am sure there are some questions. Let me try and address them:
Why do I want WordPress.org managing translations for my plugin?
WordPress.org provides translations in dozens of languages and is ever expanding as new contributors join. (There are currently 140 locales on translate.wordpress.org, but not all are active.) While you may have translated your plugin into a few languages (or none at all), there are likely more translators on WordPress.org in more languages.
But that’s not all! Plugins in the WordPress.org directory will be able to take advantage of language packs! That means smaller download sizes for users, because plugins will no longer need to ship translations. Eventually, we also plan to give priority to localized plugins in localized directories; e.g., someone searching the Romanian plugin directory will see Romanian plugins prioritized over English-only plugins.
A great example of what your plugin will look like in a translated directory is Akismet.
When will you import my plugin into translate.wordpress.org?
We will import plugins in order, by the number of active installs they have, starting with the most active installs and working down to the least active installs. You will be emailed when your plugin is in the next batch of imports. Be sure to keep translations up-to-date.
Will you import my plugin ahead of time?
We’re importing in stages to monitor our systems and ensure the entire site does not break. We will not import your plugin out of order.
How do you define “active” plugins?
Plugins are considered “active” if they have been updated in the last two years. This is the same standard that the plugin directory uses when showing plugins in the search results.
My plugin doesn’t have any strings to translate. Does this apply to me?
Yes! Translators have the ability to translate your plugin’s readme.txt file and even its name.
What if my plugin already ships translations?
Translations that are already shipped in plugins will be initially imported into translate.wordpress.org. Again: we’ll import the strings and the translations on the initial import. We won’t continue to do that because the end goal would be for plugin authors to remove the translations from their download, allowing language packs to fill the void.
What if I don’t want language packs?
As mentioned, you can opt out of language packs and plugin translations on WordPress.org, by shipping translations in your plugin, just as you do now.
I currently ship translations with my plugin. How do I enable language packs?
WordPress ships with a mechanism that gives priority to shipped translations over language packs. If you wish to take advantage of language packs, you must remove the languages from your plugin zip.
How do I add support for translations and language packs?
@Otto42 wrote up a great post on the topic back in 2013. (Wow, it’s been a long time!) There’s also a great page in the plugin developer handbook which walks through how to internationalize your plugin.
Keep in mind, your plugin’s textdomain must match its slug and, as mentioned above, to fully support language packs, you’ll want to remove translations from your plugin after the import, when language packs are going out (language packs go out as soon as a translation is at 100%).
What if I want my translators to approve translations on WordPress.org?
Many plugins already have their own translators and will want to bring them over to translate.wordpress.org. We’ve written up a plan for working with the polyglots team to enable this. There will be some initial pain in adding new, project-specific (aka plugin-specific) translation editors, but afterwards, your translators will join a growing group of WordPress translators and help make the entire ecosystem better.
If you have any other questions, you’re probably not the only one, so leave them in the comments below.