Polylang allows you to create a bilingual or multilingual WordPress site. You write posts, pages and create categories and post tags as usual, and then define the language for each of them. The translation of a post, whether it is in the default language or not, is optional.
You can use as many languages as you want. RTL language scripts are supported. WordPress languages packs are automatically downloaded and updated. You can translate posts, pages, media, categories, post tags, menus, widgets… 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 Categories, post tags as well as some other metas are automatically copied when adding a new post or page translation A customizable language switcher is provided as a widget or in the nav menu