docs/contributing/translations.mdx
Reactive Resume is used by people all around the world, and translations help make the app accessible to everyone. If you speak a language other than English, you can help by contributing translations.
Reactive Resume uses Crowdin as its localization management platform. Crowdin provides a user-friendly interface where translators can contribute translations without needing to write code or work with files directly.
<Info> The Reactive Resume Crowdin project is available at [https://crowdin.com/project/reactive-resume](https://crowdin.com/project/reactive-resume). </Info>Once translations are submitted and approved on Crowdin, they are automatically synced to the codebase and will be available in the next release of the app.
<Step title="Join the Reactive Resume Project">
Navigate to the [Reactive Resume project on Crowdin](https://crowdin.com/project/reactive-resume) and click **Join**
to become a contributor.
</Step>
<Step title="Select Your Language">
From the project dashboard, click on the language you want to translate. You'll see a list of files that need
translation along with the progress for each.
</Step>
<Step title="Start Translating">
Click on a file to open the Crowdin Editor. You'll see the source text (English) on the left and a text field for
your translation on the right. - Translate the text accurately while preserving any placeholders or formatting - Use
the suggestions from Translation Memory and Machine Translation as a starting point - Vote on existing translations
if you agree with them
</Step>
<Step title="Save Your Translations">
Your translations are saved automatically as you work. Once reviewed, they'll be included in the next app release.
</Step>
To maintain consistency across all translations, please follow these guidelines:
Some strings contain placeholders like {name} or {count}. These must remain unchanged in your translation:
English: "Hello, {name}!"
Spanish: "¡Hola, {name}!"
Preserve any HTML tags or markdown formatting in the source text:
English: "Click <1>here</1> to continue"
German: "Klicken Sie <1>hier</1>, um fortzufahren"
Choose either formal or informal language based on what's standard for software in your language, and stick with it throughout.
Some technical terms (like "PDF", "URL", "JSON") are often kept in English across languages. Use your judgment based on what's common in your language's software community.
If your language is not listed in the Crowdin project, you can request it to be added.
<Warning> Before requesting a new language, please check if it's already available in the [Crowdin project](https://crowdin.com/project/reactive-resume). </Warning>To request a new language:
Once approved, the language will be added to Crowdin and you can begin translating.
Translations submitted on Crowdin are synced to the codebase periodically. Once merged, they will be included in the next release of Reactive Resume.
<Info> There may be a delay between submitting translations and seeing them live in the app. This is normal and depends on the release cycle. </Info>Thank you for helping make Reactive Resume accessible to users worldwide!