It’s a lot of work to build a plugin or theme, and it can seem like extra, unnecessary work to add multilingual support to your project. However, based on our experience with multilingual partners and our own multilingual plugins, investing the time and effort to add this feature is well worth it.
In this blog post, we’ll cover:
What are the Major Benefits of Creating a Multilingual-ready WordPress Plugin or Theme?
Keeping Up With Standard Features
As the theme and plugin markets grow more and more competitive, it’s becoming harder to compete if you don’t offer certain features. Multilingual support is quickly becoming one of those features.
WordPress itself offers installs in 205 different locales, and 45% of themes listed on WordPress.org are tagged as “Translation Ready.” If you’re not providing a theme or plugin with this feature, you’ll quickly find your product falling behind.
Greater Global Visibility and Awareness
People are searching for products that can appeal to a global market. If you’re only focused on the United States or English-speaking markets, you’re missing a lot of possible growth potential.
In 2020, visitors to WPML.org had their browsers set to the following languages:
Top ten browser languages of visitors to WPML.org
While US English represents the largest percentage of any one language, overall, English accounts for less than half of the top ten browser languages. Though this data doesn’t represent every WordPress user, it can be extrapolated based on the fact that most of the visitors to WPML.org are people interested in reaching a global market by translating their site.
Similarly, over half of WordPress active installs are run in locales other than the default (US English).
Locales of current WordPress installations (Source: WordPress Statistics)
Clearly, there is a massive market of non-English users.
Offering a product that can reach a larger market expands your sales or download potential significantly.
For instance, clients purchasing WPML came from the following countries in 2020:
Offering WPML in other languages makes the purchasing decision easier for clients in those other countries.
What’s the Easiest Path to Making my Plugin or Theme Multilingual-ready?
You can follow these steps to get started:
- Prepare your product for translation
- Translate the text strings in your plugin or theme
- Make your products ready for multilingual sites
Prepare Your Theme or Plugin for Translation
To prepare your plugin or theme for translation, you’ll need to wrap the text you want to translate in GetText calls and add Text Domain arguments.Tweet
Translate the Text Strings
Translating the text strings is different for free plugins on the WordPress repository and for premium plugins, however, in both cases you must start by generating POT (Portable Object Template) files.
Translators use POT files to do the actual translation. Once the translation is done, PO (Portable Object) files are created for each language.
Finally, each PO file needs to be compiled into a corresponding MO (Machine Object). These MO files are what the system (i.e. WordPress) actually uses to load and display the translation.
Generating a POT file
You can learn more about exporting your POT file on WordPress.org and free options available to help with preparing your POT file.
One of the easiest ways to generate a POT file for your theme or plugin is by using WPML’s Theme and plugins localization tool, which allows you to create a POT file in just a few clicks.
If you are a fan of automations like I am, you may want to take a look at the following Gulp libraries:
- gulp-wp-pot: Generates POT files for WordPress plugins and themes.
- gulp-gettext: Compile PO files to MO files.
- gulp-pofill: Helps creating pre-filled PO file out of a POT file of your primary language.
Translating the POT file for use by your plugin
Once you have your POT file, it will contain all the strings from your theme or plugin. There are many ways to translate this file. It can be done manually by using freemium tools like POEdit, or you can use professional online translation. In both cases, the results are exported to MO files for each language.
If you use WordPress.org to translate a free project, the platform will automatically generate the MO files after the translations are approved.
Getting Translations Approved by WordPress.org Project Translation Editors
Getting translations approved from WordPress.org is done with the help from WordPress volunteers called Project Translation Editors or PTEs. If you’re an expert in a specific language, or if you fit the criteria of the volunteer community around that language, then you can request to become a PTE yourself, on behalf of one of your team members, or a translator you work with or hire. By having a PTE “on your team,” you can drastically speed up the process of getting translations approved on WordPress.org.
If you don’t have the resources to have a PTE working closely with you, current volunteer PTEs can be reached in the WordPress.org Slack #polyglots channel, but they have a huge backlog of translations to work on, so don’t expect anything quickly (depending on the language and team).
Once the PTEs approve around 80% of your translation strings, the language becomes publicly available to your free users.
To speed up your translation process even further, you can even automatically translate your plugin or theme with Google Translate and then have those strings reviewed by your translators.
To speed up your translation process, you can even automatically translate your WordPress plugin or theme with the Google Translate API and then have those strings reviewed by your translators.Tweet
However, Google’s translations aren’t always of the highest quality, and they may not meet the standards of each language review team, so, to ensure you have a smooth approval process with WordPress.org PTEs, there are a few things you can do.
First, don’t just submit raw google translations – ensure your translators go through them at least once to double check they make sense and are grammatically correct.
Second, your translators should become familiar with the Glossary for each locale you’re translating and ensure that your strings are using terminology based on the standards chosen by the translation teams.
Finally, ensure your translators are aware of how to parse between what should be translated vs what should not be translated in strings. Specifically, you might have dynamic strings like
%s submitted a form, in which case your translators should know how to handle the dynamic text that will be inputted for each language. Or, alternatively, if a translator sees a static URL, they should know it should be a placeholder and does not need to be translated.
While this might seem obvious to you and me as developers, a translator might see a word in a URL and translate it no matter where it appears in the string, so just be careful that your translators are technically aware of these nuances.
Adding translations to your product
Once the strings are translated, you can incorporate the MO files into your product’s ZIP files for your paid product. This part is the same for both free and premium plugins and allows your clients to use your plugin in any of the languages you have translated it into.
For example, the WPML plugin has all of its translations (MO files) inside a “locale” directory, right inside the plugin’s main folder.
Subscribe and grab a free copy of our
WordPress Plugin Business Book
Exactly how to create a prosperous WordPress plugin business in the subscription economy.
Share with a friend
Enter your friend’s email address. We’ll only email them this book, scout’s honor.
Thank you for sharing
Awesome – a copy of ‘The WordPress Plugin Business Book’ was just sent to . Want to help us spread the word even more? Go on, share the book with your friends and colleagues.
Thanks for subscribing!
– we just sent your copy of ‘The WordPress Plugin Business Book’ to .
Have a typo in your email? click here to edit the email address and send again.
Make your products ready for multilingual sites
When it comes time for your clients to translate their own sites, they will most likely need to translate additional content they created using your theme or plugin. There are over 1 million websites using WPML as a multilingual solution, so it makes perfect sense to make your theme or plugin compatible with WPML. Luckily, this is also very easy.
To make sure your clients can fully use your plugin or theme on their multilingual site, you just need to include a tiny language configuration file. This makes it possible for WPML to tell which elements of your theme or plugin are translatable on your client’s site.
Joining the WPML Go Global program is the easiest way to make your project fully WPML-compatible. Plus, it helps market you to web developers and end users looking to build multilingual sites by adding you to the plugin and theme directories.
Long-term Multilingual Goals for Plugin and Theme Developers
Once you’ve done everything we previously mentioned, there are a few things you can do to ensure long-term sustainability and growth of your translation efforts.
Keep your translations up to date
First, you need to keep your translations up to date when you change any user-interface text or content in your product.
This means adding a process in your development cycle for freezing string content in your theme or plugin. Review and submit your strings for translation before any new release.
Translate the top pages in your site
Second, translate the pages in your site’s sales funnel to attract clients that use your product’s other languages and expand your target market. This improves your multilingual SEO and increases sales by making it possible for clients to complete their purchases in their native languages.
Consider adding multilingual support
Finally, you might consider creating a multilingual support team or contracting a Support as a Service platform that offers support in multiple languages to assist with technical questions in your clients’ native languages.
You might consider creating a multilingual support team or contracting a Support as a Service platform that offers support in multiple languages.Tweet
Conducting support using Google Translate can get complicated when your clients are trying to explain complex issues. Localized support means less time spent on each ticket, lower cost in time and resources, and happier clients that are more willing to stick with you in the long-term.
And that’s it! With a bit of work up front, you can offer a fully multilingual product and start reaping the benefits of reaching a global market.