Skip to content

[Feature]: Add Arabic localization and RTL support #2013

@hbx12

Description

@hbx12

Summary

I’d like to add Arabic (ar) support to OpenWork and help maintain it over time.

Arabic is currently missing from the app, and I’d like to handle both the translation and the RTL side properly so the experience feels natural for Arabic-speaking users, not like a rough machine translation.

I’m a native Arabic speaker, and I’m ready to work on the implementation myself.

Problem / goal

The goal is to make OpenWork genuinely usable in Arabic.

That means more than adding translated strings. Arabic needs right-to-left layout support, and some technical terms should stay in English when that makes the UI clearer for developers.

I can take care of:

  • Adding apps/app/src/i18n/locales/ar.ts
  • Registering ar in apps/app/src/i18n/index.ts
  • Re-exporting the locale from apps/app/src/i18n/locales/index.ts
  • Adding ar to scripts/i18n-audit.mjs
  • Translating the UI into clear Modern Standard Arabic
  • Reviewing mixed Arabic/English text for terms such as OpenCode, MCP, agents, permissions, skills, and API settings
  • Adding and testing RTL behavior where needed
  • Maintaining the Arabic locale when new translation keys are added later

I saw that Arabic and RTL were already mentioned in the previous i18n roadmap, so I’d like to pick up that work and move it forward.

Primary user(s)

  • Bob (IT / power user)
  • Susan (non-technical)
  • Other team roles

OpenCode primitive alignment

This would improve accessibility across the existing OpenCode-powered UI, especially sessions, permissions, agents, skills, MCP-related screens, settings, and onboarding.

Alignment with VISION/PRINCIPLES/PRODUCT

OpenWork is meant to make agent workflows easier to use beyond CLI-only setups. Adding Arabic and RTL support helps bring that experience to more users while keeping the work inside the existing i18n structure and audit flow.

Testability

I plan to verify the following:

  1. Arabic can be selected from the language settings.
  2. The app sets document.documentElement.lang to ar.
  3. RTL layout is enabled for Arabic and removed when switching back to an LTR language.
  4. node scripts/i18n-audit.mjs --missing checks the Arabic locale correctly.
  5. Onboarding, settings, sessions, permissions, agents, skills, and MCP-related screens are reviewed manually.
  6. The layout remains usable on desktop and narrow/mobile widths.

I’m fine with splitting the work into two PRs if that makes review easier:

  1. Arabic locale and translation
  2. RTL support and UI fixes

Ready to build it yourself?

Yes

Additional context

I can start once you confirm the preferred PR structure. I’m also happy to keep maintaining the Arabic locale after the initial merge.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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