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.propertiesuser-label=Settings for user {0}.
BaseClass_pt.propertiesuser-label=Definições para usuário {0}.
3. Implement Rincled
Implement Rincledto bring quick and easy resource access to any class.
MyClass.javapublic 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.javapublic 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.