The Resource I18n Concern Library (Rincl) facilitates internationalization by providing access to localization resources via Csar.
Plain Java | Rincl | |
---|---|---|
Resource Types | String , Object | double , int , Object , Path , String , URI |
Formatted Messages | No | Yes |
Optional Resources | No | Yes |
Class Resources | Yes manually | Yes |
Inheritance Resolution | No | Yes |
Properties Files (ISO-8859-1) | Yes | Yes |
Properties Files (UTF-8) | No | Yes |
Properties Files (XML) | No | Yes |
Multiple Locale on JVM | No | Yes via Csar |
Quick Start
1. Include Rincl Dependency
Include the appropriate Rincl dependency from Maven. To support resource bundles, simply add io.rincl:rincl-resourcebundle:x.x.x
to your POM.
pom.xml
<project>
…
<dependencies>
…
<dependency>
<groupId>io.rincl</groupId>
<artifactId>rincl-resourcebundle</artifactId>
<version>x.x.x</version>
</dependency>
</dependencies>
</project>
2. Provide Resource Properties Files
Provide localized resources for classes that need them. Feel free to consolidate resources into properties associated with base classes.
BaseClass.properties
user-label=Settings for user {0}.
BaseClass_pt.properties
user-label=Definições para usuário {0}.
3. Implement Rincled
Implement Rincled
to bring quick and easy resource access to any class.
MyClass.java
public class MyClass extends BaseClass implements Rincled {
…
4. Access Resources
Acquire a Resources
instance via Rincled
to gain access to a wide variety of resource types. Resources are automatically resolved to those defined for parent classes and interfaces!
MyClass.java
public class MyClass extends BaseClass implements Rincled {
…
final String userName = "Jane Doe";
//Retrieve the formatted user label based upon the current locale.
//en-US: "Settings for user Jane Doe."
//pt-BR: "Definições para usuário Jane Doe."
final String userLabel = getResources().getString("user-label", userName);
…
Learn More
You can access an in-depth introduction to Rincl, and learn more about internationalization in general.