Many themes and plugins save texts in the wp_options table. WPML makes them translatable via the String Translation module.

Let’s start at the end. Supposing that your code has something like:

<?php echo(get_option("footer_text")) ?>

To translate this text, you don’t need to edit anything in the code. You need to enable WPML’s String Translation module (available with the WPML Standard account type).

Choosing wp_options entries for translation

To tell WPML that this string needs translation.

Create a language configuration file and save it in your theme/plugin root directory.

That file states which wp_options entries, custom types and custom fields are multilingual.

Translating

Once you’ve chosen the strings for translation, go to WPML -> String Translation. You can use the context filter to locate only the relevant strings.

String translation screen

Make sure to click on the translation complete checkbox next to each string you’ve translated. Only completed translations will be displayed on the public pages.

Also note that when the originals change, the status of translations automatically reverts to incomplete. You can use the display filter in the string translation screen to choose strings that require translation.