agent-orchestrator/ui-electrobun/locales/ar.json
Hibryda aae86a4001 feat(electrobun): i18n system — @formatjs/intl + Svelte 5 runes + 3 locales
- i18n.svelte.ts: store with $state locale + createIntl(), t() function,
  formatDate/Number/RelativeTime, getDir() for RTL, async setLocale()
- i18n.types.ts: TranslationKey union (codegen from en.json)
- locales/en.json: 200+ strings in ICU MessageFormat
- locales/pl.json: full Polish translation
- locales/ar.json: partial Arabic (validates 6-form plural + RTL)
- scripts/i18n-types.ts: codegen script for type-safe keys
- 6 components wired: StatusBar, AgentPane, CommandPalette,
  SettingsDrawer, SplashScreen, ChatInput
- Language selector in AppearanceSettings
- App.svelte: document.dir reactive for RTL
- CONTRIBUTING_I18N.md: guide for adding languages

Note: currently Electrobun-only. Will extract to @agor/i18n shared
package for both Tauri and Electrobun.
2026-03-22 10:28:13 +01:00

75 lines
5.1 KiB
JSON

{
"sidebar.settings": "\u0625\u0639\u062f\u0627\u062f\u0627\u062a",
"sidebar.addGroup": "\u0625\u0636\u0627\u0641\u0629 \u0645\u062c\u0645\u0648\u0639\u0629",
"sidebar.addProject": "\u0625\u0636\u0627\u0641\u0629 \u0645\u0634\u0631\u0648\u0639",
"sidebar.groupName": "\u0627\u0633\u0645 \u0627\u0644\u0645\u062c\u0645\u0648\u0639\u0629",
"sidebar.notifications": "\u0627\u0644\u0625\u0634\u0639\u0627\u0631\u0627\u062a",
"sidebar.notifCount": "{count, plural, =0 {\u0627\u0644\u0625\u0634\u0639\u0627\u0631\u0627\u062a} one {\u0625\u0634\u0639\u0627\u0631 \u0648\u0627\u062d\u062f} two {\u0625\u0634\u0639\u0627\u0631\u0627\u0646} few {{count} \u0625\u0634\u0639\u0627\u0631\u0627\u062a} many {{count} \u0625\u0634\u0639\u0627\u0631\u064b\u0627} other {{count} \u0625\u0634\u0639\u0627\u0631}}",
"sidebar.close": "\u0625\u063a\u0644\u0627\u0642 \u0627\u0644\u0646\u0627\u0641\u0630\u0629",
"sidebar.maximize": "\u062a\u0643\u0628\u064a\u0631 \u0627\u0644\u0646\u0627\u0641\u0630\u0629",
"sidebar.minimize": "\u062a\u0635\u063a\u064a\u0631 \u0627\u0644\u0646\u0627\u0641\u0630\u0629",
"agent.prompt.placeholder": "\u0627\u0637\u0631\u062d \u0633\u0624\u0627\u0644\u0627\u064b \u0623\u0648 \u0635\u0641 \u0645\u0647\u0645\u0629...",
"agent.prompt.send": "\u0625\u0631\u0633\u0627\u0644",
"agent.prompt.stop": "\u0625\u064a\u0642\u0627\u0641 \u0627\u0644\u0648\u0643\u064a\u0644",
"agent.status.running": "\u064a\u0639\u0645\u0644",
"agent.status.idle": "\u062e\u0627\u0645\u0644",
"agent.status.done": "\u0645\u0643\u062a\u0645\u0644",
"agent.status.error": "\u062e\u0637\u0623",
"agent.status.stalled": "\u0645\u062a\u0648\u0642\u0641",
"agent.status.thinking": "\u064a\u0641\u0643\u0631",
"agent.tokens": "{count} \u0631\u0645\u0632",
"settings.title": "\u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a",
"settings.close": "\u0625\u063a\u0644\u0627\u0642 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a",
"settings.appearance": "\u0627\u0644\u0645\u0638\u0647\u0631",
"settings.agents": "\u0627\u0644\u0648\u0643\u0644\u0627\u0621",
"settings.security": "\u0627\u0644\u0623\u0645\u0627\u0646",
"settings.projects": "\u0627\u0644\u0645\u0634\u0627\u0631\u064a\u0639",
"settings.orchestration": "\u0627\u0644\u062a\u0646\u0633\u064a\u0642",
"settings.machines": "\u0627\u0644\u0623\u062c\u0647\u0632\u0629",
"settings.keyboard": "\u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d",
"settings.advanced": "\u0645\u062a\u0642\u062f\u0645",
"settings.marketplace": "\u0627\u0644\u0633\u0648\u0642",
"settings.diagnostics": "\u0627\u0644\u062a\u0634\u062e\u064a\u0635",
"settings.language": "\u0627\u0644\u0644\u063a\u0629",
"statusbar.running": "\u064a\u0639\u0645\u0644",
"statusbar.idle": "\u062e\u0627\u0645\u0644",
"statusbar.stalled": "\u0645\u062a\u0648\u0642\u0641",
"statusbar.attention": "\u0627\u0646\u062a\u0628\u0627\u0647",
"statusbar.projects": "\u0645\u0634\u0627\u0631\u064a\u0639",
"statusbar.session": "\u062c\u0644\u0633\u0629",
"statusbar.tokens": "\u0631\u0645\u0648\u0632",
"statusbar.cost": "\u0627\u0644\u062a\u0643\u0644\u0641\u0629",
"splash.loading": "\u062c\u0627\u0631\u064d \u0627\u0644\u062a\u062d\u0645\u064a\u0644...",
"common.cancel": "\u0625\u0644\u063a\u0627\u0621",
"common.confirm": "\u062a\u0623\u0643\u064a\u062f",
"common.close": "\u0625\u063a\u0644\u0627\u0642",
"common.save": "\u062d\u0641\u0638",
"common.delete": "\u062d\u0630\u0641",
"common.edit": "\u062a\u0639\u062f\u064a\u0644",
"common.refresh": "\u062a\u062d\u062f\u064a\u062b",
"common.add": "\u0625\u0636\u0627\u0641\u0629",
"common.back": "\u0631\u062c\u0648\u0639",
"common.noItems": "\u0644\u0627 \u062a\u0648\u062c\u062f \u0639\u0646\u0627\u0635\u0631",
"tasks.todo": "\u0644\u0644\u062a\u0646\u0641\u064a\u0630",
"tasks.inProgress": "\u0642\u064a\u062f \u0627\u0644\u062a\u0646\u0641\u064a\u0630",
"tasks.review": "\u0645\u0631\u0627\u062c\u0639\u0629",
"tasks.done": "\u0645\u0643\u062a\u0645\u0644",
"tasks.blocked": "\u0645\u062d\u0638\u0648\u0631",
"tasks.taskCount": "{count, plural, =0 {\u0644\u0627 \u0645\u0647\u0627\u0645} one {\u0645\u0647\u0645\u0629 \u0648\u0627\u062d\u062f\u0629} two {\u0645\u0647\u0645\u062a\u0627\u0646} few {{count} \u0645\u0647\u0627\u0645} many {{count} \u0645\u0647\u0645\u0629} other {{count} \u0645\u0647\u0645\u0629}}",
"errors.connectionFailed": "\u0641\u0634\u0644 \u0627\u0644\u0627\u062a\u0635\u0627\u0644",
"errors.sessionExpired": "\u0627\u0646\u062a\u0647\u062a \u0627\u0644\u062c\u0644\u0633\u0629",
"errors.fileNotFound": "\u0627\u0644\u0645\u0644\u0641 \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f",
"errors.generic": "\u062d\u062f\u062b \u062e\u0637\u0623 \u0645\u0627",
"palette.placeholder": "\u0627\u0643\u062a\u0628 \u0623\u0645\u0631\u064b\u0627...",
"palette.newTerminal": "\u0639\u0644\u0627\u0645\u0629 \u062a\u0628\u0648\u064a\u0628 \u0637\u0631\u0641\u064a\u0629 \u062c\u062f\u064a\u062f\u0629",
"palette.openSettings": "\u0641\u062a\u062d \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a",
"palette.searchMessages": "\u0628\u062d\u062b \u0641\u064a \u0627\u0644\u0631\u0633\u0627\u0626\u0644"
}