The language switcher

I can’t add the  language switcher in the menus

In appearance->menus, go in screen options on top right of you screen and check the “Language switcher” checkbox. You then should have a new metabox which allows to add a language switcher just as you add another menu item.

I setup the language switcher but it doesn’t appear on frontend

To avoid 404 errors, Polylang does not display a language if there is no published content (post or page) in that language. If there is no content in any language, then the language switcher does not appear at all.

Is it possible to display a language switcher without using the widget?

It is possible to get a language switcher where you want in your theme without using the widget. For this, you can simply add in your theme the following instruction:

<ul><?php pll_the_languages();?></ul>

See the documentation for theme and plugin programmers for more about the function parameters.

Can I use my own flags for the language switcher?

Yes. You have to use PNG or JPG files and name them with the WordPress locale. For example, en_US.png. Then upload these files in the /wp-content/polylang/ directory (create the directory if it does not exist). Don’t use the /polylang/flags/ directory as your files would be removed when automatically updating the plugin.

How to display the widget flags horizontally?

The appearance of your site is controlled by CSS rules placed in the file style.css in your theme directory. The appearance of the language switcher is controlled by the classes “lang-item” for all languages and “current-lang-item” for the current language.
So you can add the following lines in style.css

.lang-item {
	display: inline;
}

The topic also was discussed on the forum: Flags vs. Text Links in widget

How to display remove bullets in front of the flags?

You can add the following lines in style.css

.lang-item {
	list-style: none;
}

My flags are misaligned in the Twenty Eleven menu

If you are using the flags provided with Polylang, just add the following css rule to your style.css:

#access img {
	margin-bottom: 0px;
}

It is much better to create a child theme to avoid loosing your modification when updating the theme.