-
Notifications
You must be signed in to change notification settings - Fork 7
[i18n] Full localization audit and translation quality pass #20
Copy link
Copy link
Closed
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is neededi18nInternationalization and localizationInternationalization and localization
Description
Problem
ADOS Mission Control supports 16 languages through next-intl, with 56+ translation namespaces across locale JSON files. A lot of the app is properly translated. But there are still many components with hardcoded English strings that bypass the translation system entirely. When a user switches to Hindi, Japanese, or any other language, these strings stay in English.
This is a tracking issue for a full localization pass across the codebase.
Scope
We need to:
- Audit every user-facing component for hardcoded English strings
- Add translation keys to
locales/en.jsonfor every identified string - Translate those keys across all 16 supported languages with proper, natural translations (not lazy word-for-word machine output)
What to translate
- UI labels, headings, descriptions, button text
- Placeholder text in inputs
- Empty state messages ("No alerts", "No active missions")
- Status labels ("Online", "Offline", "In Mission")
- Error messages, warning banners, dialog content
- Tooltips and help text
- Dropdown/select option labels (where they are descriptive text)
What NOT to translate
- Parameter names (e.g.
BATT_ARM_VOLT,ARMING_CHECK) - Technical protocol names (
MAVLink,MSP,MQTT) - Codec/format names (
H.264,H.265) - Unit abbreviations (
Hz,Mbps,dBm) - Theme names (e.g. "Dracula", "Nord", "Catppuccin Mocha") since these are proper nouns
- Firmware names (
ArduPilot,Betaflight,PX4,iNav)
Areas with known gaps
- Dashboard cards: fleet status, active missions, alerts, battery (5+ files)
- Fleet Management: toolbar filters, sort options, view modes, status labels
- Connect page: transport labels, feature badges, connection status
- Onboarding/Welcome modal: accent color labels, group tabs, preview UI text
- Authentication: sign-in modal, auth gate, local storage banner
- UI Dialogs: unsaved changes dialog and similar
- Flight view and Suite Dashboard: data labels, suite descriptions, section headers
- Community pages: category badges, status badges
- Config panels: theme section groups, timezone options, video bitrate/codec options
- Telemetry indicators: channel names and freshness labels
- Log viewer: external analysis tool names and descriptions
Translation quality bar
Every translated string should read like a native speaker wrote it. That means:
- Proper grammar and sentence structure for each language
- Context-appropriate word choices (a "battery" label in a drone GCS is different from a phone settings screen)
- Consistent terminology within each language (pick one word for "mission" and stick with it)
- No Google Translate dumps. If you are not fluent in a language, flag it for review by a native speaker
How to contribute
- Pick an area from the checklist above
- Search the relevant component files for hardcoded English strings
- Add translation keys to
locales/en.jsonunder the appropriate namespace - Replace the hardcoded string with
t("namespace.key")usinguseTranslations() - Add translations for the languages you know
- Open a PR referencing this issue
If you only speak one or two of the 16 languages, that is still useful. Add the English keys and translate what you can. Others can fill in the rest.
Related issues
Area-specific issues will be linked below as they are created.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is neededi18nInternationalization and localizationInternationalization and localization