About the plugin: it has been tested and coded in 1.12.2 for now, and since the plugin uses a yaml file directly, you can use it as a comfortable bukkit config file.
Note: to access the file directly: "LanguageFile langfile = LanguageFile.getLanguageFile(javaplugin, language);"
- All messages have placeholders if you have the PlaceholderAPI plugin installed on your server.
- Likewise, color codes are set in all messages, and this is the color code key: '&'
Placeholders:
- %langmanager_version%
- %langmanager_author%
- %langmanager_active_langs_locale%
- %langmanager_connected_plugins%
- %langmanager_player_lang_name%
- %langmanager_player_lang_locale%
- %langmanager_player_lang_region%
Custom Event: LanguageChangeEvent
Installation of the plugin:
Step 1: Add this plugin to your reference files.
Step 2: Register your plugin.
Step 3: Create yml files by typing the locales of any language you have activated.
Step 4: Add this plugin as depend to your plugin.yml file.
Step 5: Add the prefix to all the language files you created.
Step 6: All send and receive methods are available from the MessageManager class. or manually call the LanguageFile file and customize it.
Step 7: Add the nodes you created to all your language files.
Step 8: Then open your server and check if your plugin is loaded.
Step 9: Finally enjoy 
Important: if you are a developer and will use this api. If your server is in online mode, the data is loaded with the player login event and while you are doing something about this api by using the player login event, don't forget to give priority to the api, otherwise you may get a nullPointerException error. If your server is not in online mode, the data is loaded using the player join event and it is recommended to give priority to this plugin again. If you do not give priority, you may get a nullPointer error or there may be a problem in loading data. However, I tried to reduce the error as much as possible.