Internationalization
Build multi-language applications with locale-aware formatting and resource bundles.
Resource Bundles
Standard Java resource bundles for managing translations across any number of languages.
Locale Detection
Automatic detection of user locale from browser preferences with easy programmatic override.
Number Formatting
Locale-aware number, currency, and percentage formatting using Java's built-in formatters.
Date Formatting
Dates and times formatted according to the user's locale conventions automatically.
RTL Support
Right-to-left layout support for Arabic, Hebrew, and other RTL languages.
Dynamic Switching
Switch languages at runtime without page reloads. Session-based locale persistence.
Locale-Aware Applications
Oorian integrates with Java's built-in internationalization support. Use resource bundles for translations and locale-aware formatting for numbers, dates, and currencies.
// Resource bundles for translations
// messages_en.properties: greeting=Hello, {0}!
// messages_es.properties: greeting=¡Hola, {0}!
// messages_ja.properties: greeting=こんにちは、{0}さん!
// Get user's locale
Locale locale = getSession().getLocale();
// Load translations
ResourceBundle bundle =
ResourceBundle.getBundle("messages", locale);
String greeting = MessageFormat.format(
bundle.getString("greeting"), userName);
// Locale-aware formatting
NumberFormat currency = NumberFormat.getCurrencyInstance(locale);
String price = currency.format(29.99);
DateTimeFormatter dateFormat =
DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG)
.withLocale(locale);
String date = LocalDate.now().format(dateFormat);Benefits
Standard Java I18N
Oorian builds on Java's proven internationalization APIs. No proprietary translation format to learn — use standard ResourceBundle, MessageFormat, and java.text formatters.
Resource Bundles
Organize translations in standard .properties files by locale. Tools and translators already know the format, making it easy to manage translations at scale.
Locale-Aware Formatting
Numbers, currencies, dates, and times are formatted according to the user's locale automatically. No manual formatting logic or locale-specific code paths.
RTL Layout Support
Right-to-left languages like Arabic and Hebrew are supported with automatic layout mirroring. Components adapt their direction based on the active locale.
Dynamic Language Switching
Users can switch languages at runtime without losing their session state. The locale is stored in the session and applied to all subsequent page renders.