Skip to content

This is a library oriented to multi-language management, for Java but mostly focused on Minecraft server using the Spigot or BungeeCord platform.

License

Notifications You must be signed in to change notification settings

alexissdev/LanguageLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LanguageLib Codacy Badge

Information

LanguageLib is a simple library to make it easier to handle multi languages

Repository

	<repositories>
		<repository>
		    <id>jitpack.io</id>
		    <url>https://jitpack.io</url>
		</repository>
	</repositories>

	<dependency>
	    <groupId>com.github.cassha.LanguageLib</groupId>
	    <artifactId>languagelib</artifactId> <!-- languagelib-universal, languagelib-bukkit, languagelib-bungee -->
	    <version>2.0.6-SNAPSHOT</version>
	</dependency>

Usage

Create instance

Available implementations is BungeeLanguageLib and BukkitLanguageLib

LanguageLib languageLib = BukkitLanguageLib.builder(your plugin, "language").build();

In any case, those who want to put their own implementations can use

LanguageLib languageLib = BukkitLanguageLib.builder(plugin, "en")
                                    .setFileLoader(fileLoader)
                                    .setFilesManageable(filesManageable)
                                    .setTranslationManager(translationManager)
                                    .setI18n(i18n)
                                    .build();
Get simple message
public void sendMessage(Player player) {
    TranslatableMessage translateMessage = languageLib.getTranslationManager().getTranslation("path");
    
    // Set variable from message
    translateMessage.setVariable("%player_name%", player.getName());

    // Set color from message
    translateMessage.colorize();
    
    //Get message
    String message = translateMessage.getMessage("language");

    player.sendMessage(message);
}
Get list messages
public void sendMessages(Player player) {
    TranslatableMessage translateMessage = languageLib.getTranslationManager().getTranslation("path");
    
    // Set variable from messages
    translateMessage.setVariable("%player_name%", player.getName());

    // Set color from messages
    translateMessage.colorize();
    
    //Get messages in List format
    List<String> message = translateMessage.getMessages("language");

    message.forEach(player::sendMessage);
}

Placeholders

Create your placeholders

There are 1 ways available to create placeholders
public class TestPlaceholderApplier implements PlaceholderApplier {

    public <T> String apply(T holder, String text) {
          if (!(holder instanceof Player)) {
              return text;
          }
          Player player = (Player) player;

          return text.replace("%player_name%", player.getName());
    }
}

Add your placeholders from message

In order to add them as a placeholder, they have to implement PlaceholderApplier

We can add 1 single placeholder

translateMessage#addPlaceholder(holder, new YourPlaceholder())

or multiple

translateMessage#addPlaceholders(holder, placeholders...);

Data to take into account

The default library generates the files in this way "language_% lang% .yml", we can change this in the FileLoader %lang% will be replaced by the language that is being loaded

fileLoader#setFormat("language_%lang%.yml")

About

This is a library oriented to multi-language management, for Java but mostly focused on Minecraft server using the Spigot or BungeeCord platform.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages