Skip to content

Add internationalization and Persian (fa) language support #154

Description

@sajjadrashidi

Summary

Request to implement internationalization (i18n) for the Freight-Fate project and add Persian (fa) as a supported language.

Goals

  • Prepare the application to support multiple languages
  • Add full UI translations for Persian
  • Support right-to-left (RTL) layout for proper rendering of RTL languages like Persian

Why this change matters

  • Enables Persian-speaking users to use the app more effectively and opens the product to a new market and user base.
  • Prepares the codebase for adding more languages in the future and increases flexibility and maintainability.

Proposed implementation (recommended tasks)

  1. i18n foundation

    • Select and integrate a suitable i18n library (e.g., i18next or similar) and configure basics.
    • Move all user-facing text into separate resource files under /locales/{lang}/.
  2. Add Persian (fa)

    • Create locales/fa/ directory with translation files (JSON or project-specific format) for all UI keys.
    • Review and refine translations for consistency and naturalness.
  3. RTL support

    • Identify parts of CSS/layout that require RTL adjustments.
    • Implement necessary changes (e.g., using logical CSS properties, direction: rtl) and test key pages.
  4. Date/number/units formatting

    • Ensure locale-specific formatting for dates, times, numbers, and units.
    • Use the Intl API or a suitable library for locale-aware formatting.
  5. Fonts and typography

    • Evaluate and include web fonts with good Persian glyph coverage if needed.
    • Ensure proper kerning and readability across sizes.
  6. Testing and quality

    • Add unit/integration tests to verify presence of translation keys and fallback behavior.
    • Add manual test cases for critical pages in Persian and RTL layout checks.
  7. Documentation

    • Add a CONTRIBUTING or README section explaining how to add new translations and naming conventions for keys.

Acceptance criteria

  • Users can select Persian from settings and the entire UI renders in Persian.
  • All core pages render correctly without layout breakage in RTL mode.
  • No hard-coded user-facing strings remain; all strings are sourced from translation files.
  • Tests for translations and RTL behavior are added and run in CI.

Initial time estimates

  • Research and select i18n approach: 1-2 days
  • Core implementation and initial translation files: 3-5 days
  • CSS/RTL adjustments and testing: 2-4 days
  • Documentation and feedback: 1-2 days

Additional notes

  • If the repository already contains any templates or translation files, they should be reviewed and consolidated.
  • Suggested labels: i18n, localization, enhancement, fa
  • Suggested assignee: Orinks

Please create this as an issue labeled "enhancement" and assign it to the Orinks team.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions