Skip to content

Translatica is a lightweight Java library for managing localized messages and translations with ResourceBundle support

License

Notifications You must be signed in to change notification settings

mtbarr/translatica

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Translatica

Translatica is a lightweight Java library for managing messages and translations using ResourceBundle. It allows you to register and retrieve localized messages based on Locale, making internationalization of applications easier.

Installation

Maven

Add the following dependency to your pom.xml:

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

<dependency>
    <groupId>io.github.mtbarr</groupId>
    <artifactId>translatica</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

Gradle

Add the following to your build.gradle:

repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
    implementation 'io.github.mtbarr:translatica:1.0-SNAPSHOT'
}

Usage Example

The main class of the project is MessageRegistry, which allows you to register and retrieve messages from properties files. Below are some examples of how to use the library.

Registering Messages

import io.github.mtbarr.translatica.MessageRegistry;

public class Main {
    public static void main(String[] args) {
        // Create a message registry using the default "messages.properties" file
        MessageRegistry registry = new MessageRegistry();

        // Alternatively, specify a custom properties file
        MessageRegistry customRegistry = new MessageRegistry("customMessages");
    }
}

Retrieving Messages

import io.github.mtbarr.translatica.MessageRegistry;

import java.util.Locale;

public class Main {
  public static void main(String[] args) {
    // Create a registry
    // Creating it with no arguments will use the default "messages.properties" file
    MessageRegistry registry = new MessageRegistry();
    //    MessageRegistry registry = new MessageRegistry("custom_messages");


    // Retrieve a message with the default locale
    String message = registry.get("welcome.message");

    // Retrieve a message for a specific locale
    String messageInFrench = registry.get(Locale.FRENCH, "welcome.message");

    // Retrieve a message with replacements
    String formattedMessage = registry.get("welcome.user", "John");

    System.out.println(message);           // Output: Welcome!
    System.out.println(messageInFrench);   // Output: Bienvenue!
    System.out.println(formattedMessage);  // Output: Welcome, John!
  }
}

Static Access

You can also use the static methods for accessing messages without needing to instantiate MessageRegistry:

import io.github.mtbarr.translatica.MessageRegistry;

public class Main {
    public static void main(String[] args) {
        // Retrieve a message statically
        String message = MessageRegistry.getMessage("welcome.message");

        // Retrieve a formatted message statically
        String formattedMessage = MessageRegistry.getFormattedMessage("welcome.user", "John");
        
        System.out.println(message);           // Output: Welcome!
        System.out.println(formattedMessage);  // Output: Welcome, John!
    }
}

Features

  • Locale-based message retrieval: Get translated messages based on the Locale.
  • Message formatting: Supports message formatting with dynamic replacements.
  • Simple resource bundle registration: Easily register message bundles from .properties files.
  • Static methods: Access messages without creating an instance of MessageRegistry.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Translatica is a lightweight Java library for managing localized messages and translations with ResourceBundle support

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages