# PR: Localize all user-facing strings (#553) ## Summary All user-facing strings in the mobile apps have been localized. English and Spanish translations are provided via `core_localization` (Slang). ## Changes ### i18n (en.i18n.json & es.i18n.json) - **common**: `file_not_found`, `error_occurred`, `gallery`, `camera`, `english`, `spanish` - **staff_profile_attire.capture**: Attire capture flow (attest, validation, status, filters) - **staff_certificates.upload_modal**: `name_hint`, `issuer_hint` - **staff_documents**: `file_not_found`, `unknown` - **staff_shifts.my_shift_card**: `checked_in`, `submit_for_approval`, `timesheet_submitted`, `submitted`, `ready_to_submit` - **staff_shifts.shift_details**: `eligibility_requirements` - **staff_shifts.shift_location**: `could_not_open_maps` - **staff_shifts.my_shifts_tab**: `swap_coming_soon` - **staff_clock_in**: `map_view_gps` - **client_orders_common**: `select_vendor`, `hub`, `order_name`, `no_vendors`, `no_vendors_desc` - **client_view_orders.order_edit_sheet**: Section headers and labels ### Staff app - **Attire**: `attire_capture_page`, `image_preview_section`, `attire_page` – all hardcoded strings replaced - **Certificates**: `certificate_upload_page` – file validation, hint text - **Documents**: `document_upload_page`, `documents_page` – file not found, unknown error - **Shifts**: `my_shift_card` (status, timesheet), `my_shifts_tab` (swap message), `shift_location_section`, `shift_details_page` - **Clock-in**: `location_map_placeholder` – Map View (GPS) ### Client app - **Orders**: `order_edit_sheet` – ORDER NAME, HUB, SELECT VENDOR section headers ### Slang - Ran `dart run slang` to regenerate i18n code ## Verification - Slang generation succeeds - All affected Dart files use `context.t` or `Translations.of(context)` for user-facing strings