The restore_previous_locale() WordPress PHP function restores the translations according to the previous locale.
Usage
restore_previous_locale();
Parameters
- None
More information
See WordPress Developer Resources: restore_previous_locale()
Examples
Switching between two locales temporarily
You want to display content in two different languages, and you need to switch between locales temporarily.
// Change the locale to French
switch_to_locale('fr_FR');
// Display content in French
_e('Hello, World!', 'your-text-domain');
// Restore the previous locale
restore_previous_locale();
// Display content in the original language
_e('Hello, World!', 'your-text-domain');
Sending a multilingual email
Send an email with content in both English and Spanish.
// Store the English message
$message_en = __('Your order has been received.', 'your-text-domain');
// Switch to Spanish locale
switch_to_locale('es_ES');
// Store the Spanish message
$message_es = __('Su pedido ha sido recibido.', 'your-text-domain');
// Restore the previous locale
restore_previous_locale();
// Combine messages and send the email
$message = $message_en . "\n" . $message_es;
wp_mail($email, $subject, $message);
Generating multilingual sitemap
Create a sitemap with URLs for posts in English and French.
// Query for published posts
$posts_query = new WP_Query(array('post_type' => 'post', 'post_status' => 'publish'));
// Iterate through the posts
while ($posts_query->have_posts()) {
$posts_query->the_post();
// Get the English URL
$url_en = get_permalink();
// Switch to French locale
switch_to_locale('fr_FR');
// Get the French URL
$url_fr = get_permalink();
// Restore the previous locale
restore_previous_locale();
// Output sitemap entry
echo "<url><loc>$url_en</loc><loc>$url_fr</loc></url>";
}
Translating user input for display
Display user input in the original language and a second language.
// Store user input
$user_input = 'Hello, World!';
// Display user input in the original language
echo $user_input;
// Translate user input using a custom function
$translated_input = custom_translate_function($user_input, 'fr_FR');
// Switch to French locale
switch_to_locale('fr_FR');
// Display translated input
echo $translated_input;
// Restore the previous locale
restore_previous_locale();
Localizing date and time output
Output the date and time in the original locale and a second locale.
// Store the current date and time
$current_time = current_time('timestamp');
// Display the date and time in the original locale
echo date_i18n(get_option('date_format') . ' ' . get_option('time_format'), $current_time);
// Switch to German locale
switch_to_locale('de_DE');
// Display the date and time in German
echo date_i18n(get_option('date_format') . ' ' . get_option('time_format'), $current_time);
// Restore the previous locale
restore_previous_locale();