Skip to content

Documentation: No i18n/l10n support - all UI text is English-only #45

@sfloess

Description

@sfloess

Description

All user-facing text is hardcoded in English with no internationalization (i18n) or localization (l10n) support. This limits accessibility for non-English speakers.

Scope

Affects all UIs:

  • CLI (JNexus.java): Command help text, error messages
  • Swing GUI (JNexusSwing.java): All labels, buttons, dialogs
  • AWT GUI (JNexusAWT.java): All UI text
  • Terminal UI (JNexusUI.java): All prompts and labels
  • Android (Kotlin screens): All UI strings
  • iOS/macOS (Swift screens): All UI text

Current State

All strings hardcoded:

JOptionPane.showMessageDialog(frame, 
    "Please configure credentials first.",
    "Missing Configuration",
    JOptionPane.WARNING_MESSAGE);

Impact

  • Global reach: Cannot serve non-English users
  • Accessibility: Language barrier for international developers
  • Professional quality: Limits enterprise adoption in non-English regions
  • Maintenance: String changes require code changes

Recommended Approach

For Java (Desktop):
Use ResourceBundle:

// src/main/resources/messages.properties
error.missing.config=Please configure credentials first.
dialog.title.missing.config=Missing Configuration

// src/main/resources/messages_es.properties (Spanish)
error.missing.config=Por favor configure las credenciales primero.
dialog.title.missing.config=Configuración Faltante

// In code:
ResourceBundle bundle = ResourceBundle.getBundle("messages");
JOptionPane.showMessageDialog(frame,
    bundle.getString("error.missing.config"),
    bundle.getString("dialog.title.missing.config"),
    JOptionPane.WARNING_MESSAGE);

For Android:
Use strings.xml:

<!-- res/values/strings.xml (English) -->
<string name="error_missing_config">Please configure credentials first.</string>

<!-- res/values-es/strings.xml (Spanish) -->
<string name="error_missing_config">Por favor configure las credenciales primero.</string>

<!-- In Compose -->
Text(text = stringResource(R.string.error_missing_config))

For iOS/macOS:
Use Localizable.strings:

// en.lproj/Localizable.strings
"error.missing.config" = "Please configure credentials first.";

// es.lproj/Localizable.strings
"error.missing.config" = "Por favor configure las credenciales primero.";

// In code
Text(NSLocalizedString("error.missing.config", comment: ""))

Priority

Low - feature enhancement for future versions

  • Not blocking current functionality
  • Important for global adoption
  • Consider for v2.0 or major release

Suggested Languages

Start with most common:

  1. English (default/current)
  2. Spanish
  3. French
  4. German
  5. Japanese
  6. Chinese (Simplified)

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions