Best free plugin for your goal is Polylang:
http://wordpress.org/plugins/polylang
Not so great but still easy to use is mqTranslate, which is a fork of the pretty popular qTranslate:
https://wordpress.org/plugins/mqtranslate/
A good popular (but paid) one is WPML:
Related Posts:
- How to keep plugin translations after updates?
- Why load_textdomain work but not load_plugin_textdomain?
- Language Translation is not working?
- How to set a custom title per language?
- Force language in translate function
- How to handle a WordPress blog with articles in different languages?
- Language translation on a fresh english installation
- I have English words in Kurdish pages
- How do I add languages?
- How do I change a plugin language of only one page?
- How to set back-end language per user?
- What is the best page ordering plugin that works well with WPML? [closed]
- Edit plugin without hooks in functions.php
- Disable qTranslate by post type in admin + disable per page / post ID on front-end [closed]
- Force Plugin to English Translation
- Add code into on a per page/post basis
- What is the purpose of adding a .po file?
- Qtranslate displays empty categories with get_categories()
- How to use load_plugin_textdomain from within a theme
- allow arabic letters when register new account
- Setting up a multilingual wordpress site
- How WordPress knows where to find locale files?
- Prepare plugin options for multi-lingual support
- WordPress language switcher
- Popup Cookie WordPress select language and section (Elementor)
- Possible to add a language file to a plugin without adding .po/.mo files to plugin directory?
- load_theme_textdomain path
- More than one text-domain is being used because of the included templates for plugins
- how to load the language file in plugin?
- Change the backend language of a single plugin
- How to query the custom fields by language?
- Multi language site [closed]
- Custom rewrite rules not working with WPML
- WordPress change Language not working
- polylang + category/tag custom language link
- How WordPress is able to change locale without using setlocale
- Xili language plugin not showing language flag [closed]
- Can a plugin be run in a different language than WordPress?
- Translation plugin to translate another plugins
- Display site language setting in source code
- Plugin translation not working on WordPress.org
- Translation to ACF relationship field
- How to enable WPML in BuddyPress Multilingual Plugin in a single website? [closed]
- is_front_page breaks with url parameters generated by a plugin
- Translation for a text that is not printed on the screen
- Identify User Language, Redirect to the corresponding page and Save the chosen language as Cookie
- Change language in SiteOrigin Widgets
- How to implement data residency in my WordPress site
- How to translate wordpress blog to other languages?
- WPML – Stop language redirection in initial load
- How do I make my site multi language? [closed]
- How to change WordPress core language using Loco Translate?
- WPML – Hook when language is switched (change user language)
- WPGlobus Multilingual – REST API
- Function get_locale always returns en_US in plugin?
- I have a plugin that applies a Google translation to my page–how does the browser know which language to display?
- Translation plugin with default language?
- Change localization only for plugin
- How to get the list of languages provided by a plugin
- GTranslate Plugin – Showing Different Codes With if-else
- The Best Multilanguage Plugin supporting the FSE [closed]
- Who are the most trusted plugin developers? [closed]
- Hook if somebody saves plugin options?
- login to wordpress with Get variables instead of Post
- How to update widget_text in the wp_options table
- plugin for wp_list_categories with posts
- Integrating WP as a CMS with a Bug Tracker
- Protecting against malicious code in WordPress plugin updates
- wp_specialchars and wp_specialchars_decode in a shortcode plugin
- Display All Non-Used Plugins
- How do I turn a custom post type into a plugin?
- Plugin won’t activate – cannot declare class (already in use)
- How do I prevent the link from using url of the image in Block Editor?
- Search Everything plugin integration
- Redirecting a buddyboss profile tab to a different tab if not subscribed to a specific membership
- How to create a custom post type that contains another custom post type?
- Add action to fire when a published post is updated
- get_edit_post_link() not working on wp-cron
- How to modify or create custom contact form 7 select options [closed]
- I want to generate the pdf and save it in library?
- Override methods in Yoast SEO breadcrumb class
- Jetpack: Subscribe via e-mail [closed]
- How display specific category post to specific users?
- Hidden permalink different from displayed permalink
- WordPress UPDATE queries on MySQL database stuck
- Unset plugins on front-end belonging to specific category
- WordPress appearance button
- Load font awesome by content in css
- Where do the section input fields values are stored in database
- Link in navigation menu send user to different page if mobile?
- How to customize ‘recurrance’ of’ wp_schedule_event’?
- Call/Run a Mathematica (.m) Shell Script from WordPress Page/Blog
- ‘all’ hook and add_action issue (class based plugin)
- Call current post parameters inside a plugin
- Is there a WordPress Plugin like Imsanity that keeps high resolution originals? [closed]
- Settings options not showing up in WordPress plugin [closed]
- Function not being called on form submit, only blank admin-post.php page
- how to get the url of a custom uploaded file
- Failed to update a post when I add a taxonomy to it
- Add Text in Single Product Page On a Specific Category