Skip to content

[V2 200pts] Add Yoruba (YO) language translation — full messages/yo.json with correct tonal diacritics #346

Description

@portableDD

Summary

Add Yoruba language translation to NexaFx. Yoruba is widely spoken in southwestern Nigeria and is the second priority expansion language for the platform. This builds on the i18n infrastructure from issue #45.

Prerequisites

What Needs to Be Done

1. Create messages/yo.json

Translate every key from messages/en.json into Yoruba. Same structure as en.json.

Key translations to prioritise:

{
  "auth": {
    "login": {
      "title": "Wọle si NexaFx",
      "emailLabel": "Àdírẹ́sì ìmẹ́ẹ̀lì",
      "passwordLabel": "Ọ̀rọ̀ aṣínà",
      "submitButton": "Wọle",
      "forgotPassword": "Ṣé o gbàgbé ọ̀rọ̀ aṣínà rẹ?",
      "noAccount": "Ṣé o ní àkọọ́lẹ̀?",
      "signUp": "Forúkọsílẹ̀"
    }
  },
  "dashboard": {
    "balances": {
      "title": "Àwọn ìwọntùnwọnsì rẹ",
      "error": "A kò lè gbé ìwọntùnwọnsì — jọwọ tún gbìyànjú",
      "empty": "Kò sí ìwọntùnwọnsì"
    }
  }
}

2. Update language switcher

Enable Yoruba: { code: 'yo', label: 'Yoruba (YO)', enabled: true }

3. Tonal marks

Yoruba uses tonal diacritics (e.g. à, á, ẹ, ọ, ṣ, n̄). Ensure all translations use correct diacritics — do not strip them.

4. Translation quality

  • Natural Yoruba, not literal machine translation
  • Flag uncertain entries with // TODO: verify translation

Acceptance Criteria

  • messages/yo.json covers every key in messages/en.json
  • Switching to Yoruba renders the full UI in Yoruba with correct diacritics
  • No English strings visible when Yoruba is selected
  • Language switcher shows Yoruba as enabled
  • npm run build and npm run lint pass

⚠️ IMPORTANT — READ BEFORE SUBMITTING YOUR PR
Your pull request MUST target the v2 branch.
PRs targeting main or any other branch will not be reviewed and will not be merged.

Base branch: v2   ✅
Base branch: main ❌  → will be closed without review

Complexity: High — 200 points

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions