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.

Java
// 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.