Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Internationalization Support (English & French) to Frontend #2479

Open
OchiengPaul442 opened this issue Feb 18, 2025 · 1 comment · May be fixed by #2527
Open

Add Internationalization Support (English & French) to Frontend #2479

OchiengPaul442 opened this issue Feb 18, 2025 · 1 comment · May be fixed by #2527
Assignees
Labels

Comments

@OchiengPaul442
Copy link
Contributor

OchiengPaul442 commented Feb 18, 2025

Is your feature request related to a problem? Please describe.
Our current AirQo website frontend is built with Next.js and is only available in English. This limits accessibility and usability for our French-speaking audience in West Africa. Users are currently frustrated because they cannot interact with the site in their native language, which may affect user engagement and overall satisfaction.

Describe the solution you'd like
We would like to add internationalization support to the AirQo website's frontend by implementing a language toggle between English and French. The solution should include:

  • A language toggle button placed at the extreme right of the top banner that allows users to switch between English and French seamlessly.
  • Integration of a suitable internationalization library (e.g., next-i18next) for managing translations in our Next.js application.
  • Creation and implementation of language resource files for both English and French, ensuring all static and dynamic text elements on the website are translatable.
  • Following best practices for internationalization in Next.js, with clear documentation to support future additions of more languages.

Describe alternatives you've considered

  • Custom Internationalization Solution: Developing a custom solution without a dedicated library was considered, but it may lead to increased maintenance and potential pitfalls in handling edge cases.
  • Other i18n Libraries: While alternatives such as react-intl were reviewed, next-i18next aligns more closely with our Next.js stack and offers a straightforward integration with existing server-side rendering and routing.

Additional context

  • This issue focuses exclusively on the frontend implementation. No changes are required on the Django backend at this time.
  • Coordination with the UI/UX team is encouraged to ensure the language toggle integrates seamlessly into the existing design without disrupting the user experience.
  • Performance implications should be considered to ensure smooth switching between languages without negatively impacting page load times or user interactions.
  • Screenshots or design mockups of the proposed toggle position and style can be provided upon request.

To help guide the implementation, here are some proposed resources and links:

next-i18next Documentation:

Next.js Internationalized Routing:

Next.js Examples for Internationalization:

React Internationalization Best Practices:

  • https://react.i18next.com/
  • Even if we are using next-i18next, this resource offers valuable insights into handling i18n within React applications.

How to Contribute
Assign Yourself: Only pick this issue if it has no assignee.
Implementation: Fork the repo and create a feature branch.
Submit a pull request with clear documentation of changes(including screenshots).

@TroyMoses
Copy link
Contributor

I ask to be assigned this issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants