Skip to content

feat(web/i18n): add Arabic (العربية) with full RTL layout support#29795

Open
morolab wants to merge 3 commits into
NousResearch:mainfrom
morolab:fix/i18n-arabic-conflict
Open

feat(web/i18n): add Arabic (العربية) with full RTL layout support#29795
morolab wants to merge 3 commits into
NousResearch:mainfrom
morolab:fix/i18n-arabic-conflict

Conversation

@morolab

@morolab morolab commented May 21, 2026

Copy link
Copy Markdown

Arabic (العربية) translation for the web dashboard.

What's included

  • web/src/i18n/ar.ts — 17 sections fully translated (common, app shell, status, sessions, analytics, models, logs, cron, profiles, plugins, skills, config, env, OAuth, language, theme, achievements, kanban)
  • web/src/i18n/types.ts — "ar" added to Locale union type
  • web/src/i18n/context.tsx — ar import + TRANSLATIONS entry + LOCALE_META
  • web/src/App.tsx — dir=rtl / lang toggled on locale change
  • web/src/index.css — RTL CSS block (direction + logical properties)
  • web/src/components/LanguageSwitcher.tsx — locale count updated for 17 total

RTL

Full right-to-left layout via the browser's native dir=rtl with logical CSS properties — no JS layout hacks.

Verification

Build is clean (npm run build exits 0). Dashboard deploys under hermes dashboard with Arabic selectable from the language picker.

- web/src/i18n/ar.ts: new 702-line Arabic translation covering
  common, app shell, status, sessions, analytics, models, logs, cron,
  profiles, plugins, skills, config, env, OAuth, language, theme,
  achievements, and kanban sections
- web/src/i18n/types.ts: 'ar' added to Locale union type
- web/src/i18n/context.tsx: ar import, TRANSLATIONS entry, LOCALE_META
  with name 'العربية' and sa flag
- web/src/App.tsx: document.documentElement.dir/lang toggle on locale change
- web/src/index.css: RTL CSS block (direction, logical properties, icon flip)
- web/src/components/LanguageSwitcher.tsx: locale count updated

RTL is handled entirely by the browser's dir=rtl; no JS layout logic required.
Arabic dropdown text, UI directions, and toolbar items all auto-flip.
Gives Hermes Agent its 17th supported language.
@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have labels May 21, 2026
Removed flagCountryCode from LOCALE_META.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low — cosmetic, nice to have type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants