How to let users change site language?

I translated all my theme strings and saved in .po and .mo files. I tested the implementation and it works fine, however I'm not sure how to let users choose their own language.

Are there any built-in functions to do this? How do I do it?

Topic multi-language php Wordpress

Category Web



Add filter in your child theme like this

add_filter( 'locale', 'set_my_locale' );
function set_my_locale( $lang ) {
  if ( 'gl' == $_GET['language'] ) {
    // set to Greenlandic
    return 'ka_GL';
  } else {
    // return original language
    return $lang;
  }
}

You can create the languages dropdown on front-end or any settings on backend where user can easily switch. Then get the selected lang in $_GET variable and return that lang.


There are two types of translations in the WordPress website:

  1. Label Translation in WordPress Core and Theme, for that gettext technique is useful (as mentioned by you .po and .mo files)
  2. Content Translations for that you will need to add multi-lingual plugin to handle such feature. Good Example of such plugin are:

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.