# I18n Paseo client UI translations live in `packages/app/src/i18n`. ## Supported Locales - `en` - `ar` - `es` - `fr` - `ja` - `pt-BR` - `ru` - `zh-CN` The persisted app language setting is `"system" | "ar" | "en" | "es" | "fr" | "ja" | "pt-BR" | "ru" | "zh-CN"`. `"system"` follows the device or browser locale when it maps to a supported locale; unsupported system locales fall back to English. Japanese maps from system locales `ja` and Japanese regional locales. Brazilian Portuguese maps from system locales `pt-BR` and bare `pt`; other Portuguese regional locales remain unsupported until explicitly added. ## Translation Scope Translate client-owned UI copy: labels, buttons, empty states, confirmation text, and local status/error wrappers. Do not translate agent output, daemon output, terminal contents, file paths, provider names, model names, command names, user-authored text, code blocks, logs, or raw protocol/server error text. ## Adding Copy English source strings live in `packages/app/src/i18n/resources/en.ts`. Simplified Chinese strings live in `packages/app/src/i18n/resources/zh-CN.ts`. For migrated screens and components, use `useTranslation()` and pass translated text into UI primitives. Low-level primitives such as `