Share

The feature-packed Avada 6.1 release introduces many new features, like the dynamic-content system, gradients, filters, styling options, and more. One special feature is the new Languages-Updating API we have built for Avada. With our global community in mind, this new feature allows for more accessible translations and updates.

Why We Did It

Avada is currently being used by 958,370 beginners, professionals, marketers, and developers for a wide array of business types, across the world. Language management is a major part of tens of thousands of Avada websites. Updating your language files is an integral part of site maintenance. Since Avada language files are publicly curated by the wider community, each time a language file is updated, this update would only be available with each theme update or manually via our public Git repository.

We believe that everyone should be able to use WordPress and take advantage of our theme to build incredible websites. No matter where you live or what language you speak, you shouldn’t have to manually translate your theme and plugins. This was possible for themes and plugins hosted on the WordPress repository for years. Premium products, however, were always lacking in that area because there was no way for them to provide their translations efficiently. We felt we needed to change that and make this process seamless and automatic.

What It Does

When you install Avada on your site or switch to a new language, we check your site’s language locale code. If we have an updated language file available for your selection, a notification is sent to your WordPress Dashboard, indicating that a new update is available. With the click of a button, you can then automatically update translations for our products. Easy and hassle-free!

WordPress Updates Screen

Our translations are publicly available on GitHub and are maintained by our amazing community. Anyone can contribute to these translations, something that we encourage, and as soon as there is an updated file for your language, a notification is sent to your WordPress Dashboard – just like it happens for plugins and themes hosted on wordpress.org.

How It’s Done – The Technical Part

To provide a viable solution, we examined how WordPress core updates translations for plugins and themes hosted in their repository. When your site checks if there are updated translations, it queries the WordPress API and receives a JSON object as a response. This JSON contains information about languages, the last update timestamp, the WordPress version, and a URL for the zip file containing the translation files. We copy the JSON, remove the package reference and version, update the timestamp, and replace it with our strings so that they correspond to what we need.

In our GitHub repository, our user base contributes to the .po files. Using a grunt task, we run a compiler that converts these human-readable .po files to binary .mo files, the same as WordPress uses internally. Likewise, the same formats used by WPML, as well as programs like Poedit.

Now that we have all our translation files, we bundle each language separately and create the zip files we’ll use in our custom API. Since these compressed zip files live in our public repository, we can quickly generate their URLs and access the last modified timestamp and version. We then add this new information to the WordPress-API JSON we modified earlier and end up with our custom JSON containing all the information required. This process is repeated for all our products, including Avada, Avada Builder, and Avada Core.

Finally, we hook in the update_themes and update_plugins site-transients so that when WordPress searches for translations for one of our products, we modify the response and return our custom API instead of an empty response from WordPress.

We hope you enjoy this new feature! We strive to make it easier for anyone to use our products, and we feel that internationalization is essential to making our products more accessible and simpler for everyone. As always, if you have any further questions, you are welcome to submit a support ticket, and we will be glad to help you.

Subscribe To Our Newsletter

Receive all of the latest news and updates fresh from ThemeFusion!

Leave a comment