Title: wrong flag displaying
Last modified: August 21, 2016

---

# wrong flag displaying

 *  Resolved [tarmakmedia](https://wordpress.org/support/users/tarmakmedia/)
 * (@tarmakmedia)
 * [12 years, 7 months ago](https://wordpress.org/support/topic/wrong-flag-displaying/)
 * Just a quick note that when you set a blogs language to Arabic the flag comes
   up as Argentina which indeed corresponds to the AR.
    I think to solve this issue
   you should result to keeping a flag naming convention which takes into account
   the localization and the language such as: ar_ES for Argentina ae_AR for Arab
   Emirates lb_AR for Lebanon I tried to go through your code but could not resolve
   this without heavily hacking into it. The problem also seems to come from the
   fact that wordpress Arabic sets the language to AR and does not take into account
   he localization for Arabic.
 * [http://wordpress.org/plugins/multisite-language-switcher/](http://wordpress.org/plugins/multisite-language-switcher/)

Viewing 7 replies - 1 through 7 (of 7 total)

 *  Plugin Author [Dennis Ploetner](https://wordpress.org/support/users/realloc/)
 * (@realloc)
 * [12 years, 7 months ago](https://wordpress.org/support/topic/wrong-flag-displaying/#post-4219182)
 * Hello tarmakmedia,
 * the language codes are
 * es_AR for Argentina
    ar_AE for Arab Emirates ar_LB for Lebanon
 * The language code for Arabic in WordPress is just ‘ar’.
 * Could you please verify your setting?
 * Cheers,
    Dennis.
 *  Thread Starter [tarmakmedia](https://wordpress.org/support/users/tarmakmedia/)
 * (@tarmakmedia)
 * [12 years, 7 months ago](https://wordpress.org/support/topic/wrong-flag-displaying/#post-4219185)
 * Sorry you are right, I typed it the wrong way around. I have those settings, 
   however I cannot get it to display the right flag in the back and front end. 
   I have been looking through pages of code and even resulted to renaming the actual
   image files to over come this problem.
    Could you perhaps point me into the direction
   if where to find this in your code as it seems to happen when wordpress does 
   not specify any locale? Thanks
 *  Plugin Author [Dennis Ploetner](https://wordpress.org/support/users/realloc/)
 * (@realloc)
 * [12 years, 7 months ago](https://wordpress.org/support/topic/wrong-flag-displaying/#post-4219191)
 * There is just two cases when WordPress has no value for the language: When there
   is nothing set at all or when it is set to American English. Are there all languages
   set in their blogs?
 *  Thread Starter [tarmakmedia](https://wordpress.org/support/users/tarmakmedia/)
 * (@tarmakmedia)
 * [12 years, 7 months ago](https://wordpress.org/support/topic/wrong-flag-displaying/#post-4219193)
 * Yes language values are set in the the blogs.
 * I can only think of something alone the lines of getting the language:
 * `$lang = get_blog_option( $blog->userblog_id, 'WPLANG' );`
 * And then forcing the flags for the culprits:
 *     ```
       switch($lang){
       				case "":
       				$language = "EN";
       				$flag = "us";
       				break;
       				case "ar":
       				$language = "AR";
       				$flag = "lb";
       				break;
       				default:
       				$flag = strtolower( substr( $lang, -2 ) );
       				$language = strtoupper( substr( $lang, -2 ) );
       				break;
       			}
       ```
   
 * But this does not seem like a very efficient solution.
    Are you able to reproduce
   this problem from your side when installing Arabic?
 *  Plugin Author [Dennis Ploetner](https://wordpress.org/support/users/realloc/)
 * (@realloc)
 * [12 years, 7 months ago](https://wordpress.org/support/topic/wrong-flag-displaying/#post-4219207)
 * This would be indeed not very effective. Please have a look here:
 * [https://github.com/lloc/Multisite-Language-Switcher/wiki](https://github.com/lloc/Multisite-Language-Switcher/wiki)
 * There you’ll find for example a snippet to get the language of the current blog:
 *     ```
       $blog     = MslsBlogCollection::instance()->get_current_blog();
       $language = $blog->get_language();
       ```
   
 * Let me know,
    Dennis.
 *  Thread Starter [tarmakmedia](https://wordpress.org/support/users/tarmakmedia/)
 * (@tarmakmedia)
 * [12 years, 7 months ago](https://wordpress.org/support/topic/wrong-flag-displaying/#post-4219229)
 * Ok thanks for that, would you be able to point me as to which function handles
   the displaying of the language and the flag in the front and back end of wordpress?
   
   Something I wanna share that could be useful to enhance the display of the blogs
   in the back end. It basically adds the language and the flags next to your blogs
   in a dropdown menu of the admin bar. Also does so instead of the dashboard. Very
   useful to differentiate your blogs. Repo is at: [https://github.com/tarmak/Wordpress-Multisite-Simple-Custom-Admin](https://github.com/tarmak/Wordpress-Multisite-Simple-Custom-Admin)
   You can view the screenshots. You are welcome to use and adapt any code into 
   your plugin:
 *     ```
       // Change the "My Sites" dropdown menu WP logos to the language flags and add the language locale at the end of the site name
       if ( ! function_exists( 'simplify_add_mysites_logo' ) ) {
       	function simplify_add_mysites_logo() {
       		global $wp_admin_bar;
       		foreach ( (array) $wp_admin_bar->user->blogs as $blog ) {
       			$menu_id  = 'blog-' . $blog->userblog_id;
       			$blogname = empty( $blog->blogname ) ? $blog->domain : $blog->blogname;
       			if ( is_multisite( ) ) $lang = get_blog_option( $blog->userblog_id, 'WPLANG' );
       			else $lang = get_bloginfo( 'language' );
       			switch($lang){
       				case "":
       				$language = "EN";
       				$flag = "us";
       				break;
       				case "ar":
       				$language = "AR";
       				$flag = "lb";
       				break;
       				default:
       				$flag = strtolower( substr( $lang, -2 ) );
       				$language = strtoupper( substr( $lang, -2 ) );
       				break;
       			}
       			$blavatar = '<img src="' . content_url() .'/mu-plugins/simple-custom-admin/flags/' . $flag .'.png" alt="' . esc_attr__( 'Blavatar' ) . '" width="16" height="11" class="blavatar"/>';
       			$wp_admin_bar->add_menu( array(
       				'parent'        => 'my-sites-list',
       				'id'            => $menu_id,
       				'title'         => $blavatar . $blogname . ' ' . $language ,
       				'href'          => get_admin_url( $blog->userblog_id ) )
       			);
                       }
       		$wp_admin_bar->remove_node('comments');
       		$wp_admin_bar->remove_node('new-content');
       		$wp_admin_bar->remove_node('wp-logo');
       		if ( is_multisite( ) ) { $wp_admin_bar->remove_node('site-name'); }
       		$wp_admin_bar->remove_node('network-admin');
       		$wp_admin_bar->remove_node('wpseo-menu');
       		$wp_admin_bar->remove_node('search');
   
       	if ( is_super_admin( ) && is_multisite( ) ) {
       		$wp_admin_bar->add_menu( array(
       					'id' 		=> 'network-administration',
       					'title' 	=>  __('Network Admin') ,
       					'href' 		=> get_admin_url( 1, 'network' )
       					));
   
       		$wp_admin_bar->add_menu( array(
       					'id' 		=> 'my-sites',
       					'href' 		=> '#',
       					));
       	}
           }
       }
       add_action( 'wp_before_admin_bar_render', 'simplify_add_mysites_logo' );
   
       // Replace the name "Dashboard" for each site with the language
       if ( ! function_exists( 'simplify_edit_admin_menus' ) ) {
       	function simplify_edit_admin_menus() {
       	    global $menu;
       	    global $userblog_id;
       		if ( is_multisite( ) ) { $lang = get_blog_option( $userblog_id, 'WPLANG' ); $blog_name = get_blog_option( $userblog_id, 'blogname') . " / "; }
       		else { $lang = get_bloginfo( 'language' ); $blog_name = get_option('blogname') . " / "; }
       		    switch($lang) {
       				case "":
       				$flag = "us";
       				$language = "EN";
       				break;
       				case "ar":
       				$language = "AR";
       				$flag = "lb";
       				break;
       				default:
       				$flag = strtolower( substr( $lang, -2 ) );
       				$language = strtoupper( substr( $lang, -2 ) );
       				break;
       			}
       		$menu[2] = array( $blog_name . $language, 'read', 'index.php', '', 'menu-top menu-top-first', 'menu-dashboard', content_url() .'/mu-plugins/simple-custom-admin/flags/' . $flag .'.png' );
       	}
       }
       add_action( 'admin_menu', 'simplify_edit_admin_menus' );
       ```
   
 *  Plugin Author [Dennis Ploetner](https://wordpress.org/support/users/realloc/)
 * (@realloc)
 * [12 years, 7 months ago](https://wordpress.org/support/topic/wrong-flag-displaying/#post-4219240)
 * The switcher has its own class for this: MslsOutput [https://github.com/lloc/Multisite-Language-Switcher/blob/master/includes/MslsOutput.php](https://github.com/lloc/Multisite-Language-Switcher/blob/master/includes/MslsOutput.php)
 * I will have a look on your code later. Thanks for this.

Viewing 7 replies - 1 through 7 (of 7 total)

The topic ‘wrong flag displaying’ is closed to new replies.

 * ![](https://ps.w.org/multisite-language-switcher/assets/icon-256x256.png?rev=
   2793358)
 * [Multisite Language Switcher](https://wordpress.org/plugins/multisite-language-switcher/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/multisite-language-switcher/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/multisite-language-switcher/)
 * [Active Topics](https://wordpress.org/support/plugin/multisite-language-switcher/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/multisite-language-switcher/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/multisite-language-switcher/reviews/)

## Tags

 * [multisite](https://wordpress.org/support/topic-tag/multisite/)

 * 7 replies
 * 2 participants
 * Last reply from: [Dennis Ploetner](https://wordpress.org/support/users/realloc/)
 * Last activity: [12 years, 7 months ago](https://wordpress.org/support/topic/wrong-flag-displaying/#post-4219240)
 * Status: resolved