With over 300,000 installs, Polylang is the most popular multilingual plugin available on the WordPress directory.
You write your posts, pages and create categories and post tags as usual, and assign a language to each of them. The translation, whether it is in the default language or not, is optional.
You can use as many languages as you want. RTL scripts are supported. WordPress languages packs are automatically downloaded and updated.
You can translate posts, pages, media, categories, post tags, menus… Custom post types, custom taxonomies, sticky posts and post formats, RSS feeds and all default WordPress widgets are supported.
The language is either set by the content or by the language code in URL, or you can use one different subdomain or domain per language.
The original content, categories, post tags as well as some other metas can be automatically copied when adding a new post or page translation. Two posts can even be synchronized to appear the same in different languages.
A customizable language switcher is provided as a widget or in the nav menu.