Skip to content

Reintroduce and Automate Multi-Language Support #22600

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

Open
churik opened this issue May 19, 2025 · 1 comment
Open

Reintroduce and Automate Multi-Language Support #22600

churik opened this issue May 19, 2025 · 1 comment

Comments

@churik
Copy link
Member

churik commented May 19, 2025

Feature Issue

User Story

As a multilingual user or contributor, I want the Status app to support multiple languages so that I can use and contribute to the app in my native language, improving accessibility and usability globally.

As a developer, I want to integrate Crowdin with our translation workflow so that new and updated translations can be continuously delivered and crowd-sourced in a decentralized, privacy-aligned manner.


Description

Summary:
We are reintroducing multi-language support in the Status mobile app. This feature previously existed and dynamically loaded translation files from translations/ based on the device's locale settings (if not English). Due to significant user demand and the team's alignment during offsite discussions, this functionality will be restored and enhanced with better infrastructure and processes.

Key improvements:

  • Try to use Crowdin for collaborative and AI-assisted translation management.
  • Enable community-driven translation contributions in alignment with Status's open-source, decentralized ethos.
  • Introduce CI-based automation to sync translation files between Crowdin and the GitHub repo.
  • Ensure fallback to English where translations are incomplete or unavailable.
  • Provide tooling/guidance for developers to easily mark new strings and submit them to Crowdin.

Use Cases:

  • New and existing users across non-English-speaking regions.
  • Contributors who wish to translate or refine app strings via Crowdin.
  • QA testers validating localized flows in major languages (ES, FR, PT, ZH, RU, etc.).
  • Developers needing visibility into untranslated or missing keys.

Acceptance Criteria

By the end of this epic, the Status mobile app should support locale-based language loading using the existing translations/ directory, with a fallback to English when localized strings are missing. Integration with Crowdin must be established, enabling real-time syncing of translation files between the GitHub repository and the Crowdin platform.

The contribution workflow should be clearly documented, allowing both internal team members and the community to easily submit or improve translations through Crowdin. Updates from Crowdin should be automatically synchronized via CI (e.g., GitHub Actions), minimizing manual effort and keeping translations up-to-date.

Developers should have tools or processes in place to identify untranslated or newly added keys (e.g., using extraction scripts), and QA should validate that translations do not visually break the UI, especially in critical flows and across key languages.


Notes

  • Docs team recommends Crowdin as the platform of choice. It supports AI-assisted and community-managed translations.
  • Crowdin provides official GitHub Action integration: https://github.com/marketplace/actions/crowdin-action
  • Follow privacy-first principles: ensure no telemetry or identity data is leaked through translation tooling.
  • Languages to prioritize (based on current userbase and historical demand): start from Spanish and proceed based on user data from stores
@churik churik added the feature feature requests label May 19, 2025
@churik churik changed the title Get back multi-language support Reintroduce and Automate Multi-Language Support May 19, 2025
@ilmotta
Copy link
Contributor

ilmotta commented May 19, 2025

@churik @shivekkhurana related to internationalization, we will also need to cater for number and date formatting. I have the impression the code is not ready yet to handle numbers and dates in some places. For example, the function utils.number/small-number-threshold returns a value like <0.001, hardcoding the period, which is the incorrect separator in many languages.

I think this can be a separate issue because the changes will be different than normal language translations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

3 participants