---
title: "Contributing Translations"
description: "Contribute translations for Reactive Resume through Crowdin by joining the project, proposing strings, requesting new languages, and syncing updates."
---

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.

---

## How Translations Work

Reactive Resume uses [Crowdin](https://crowdin.com/) 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.

---

## Getting Started

<Steps>
	<Step title="Create a Crowdin Account">
		If you don't already have an account, sign up at [crowdin.com](https://crowdin.com/). You can register using your
		email or sign up with Google, Facebook, Twitter, GitHub, or GitLab.
		<Tip>
			For detailed instructions on creating an account and getting started, see Crowdin's official [For
			Translators](https://support.crowdin.com/for-translators/) documentation.
		</Tip>
	</Step>

    <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>

</Steps>

---

## Translation Guidelines

To maintain consistency across all translations, please follow these guidelines:

### Preserve Placeholders

Some strings contain placeholders like `{name}` or `{count}`. These must remain unchanged in your translation:

```
English: "Hello, {name}!"
Spanish: "¡Hola, {name}!"
```

### Keep Formatting

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"
```

### Use Formal or Informal Tone Consistently

Choose either formal or informal language based on what's standard for software in your language, and stick with it throughout.

### Technical Terms

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.

---

## Requesting a New Language

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:

1. Go to the [GitHub Issues](https://github.com/amruthpillai/reactive-resume/issues) page
2. Click **New Issue**
3. Select the appropriate template or create a blank issue
4. Title it something like: "Add [Language Name] to Reactive Resume"
5. Include the language name and locale code (e.g., "Japanese - ja-JP") in the issue description.

Once approved, the language will be added to Crowdin and you can begin translating.

---

## When Will My Translations Appear?

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>

---

## Tips for Effective Translation

<CardGroup cols={2}>
  <Card title="Use Context" icon="eye">
    Crowdin often shows context, screenshots, or comments to help you understand where the text appears in the app.
  </Card>
  <Card title="Check Existing Translations" icon="check">
    Review translations by other contributors and vote for accurate ones to help maintain quality.
  </Card>
  <Card title="Ask Questions" icon="comment">
    Use Crowdin's comment feature to ask about unclear strings or discuss translations with other contributors.
  </Card>
  <Card title="Stay Consistent" icon="book">
    Check the project glossary (if available) to ensure terminology is used consistently across the app.
  </Card>
</CardGroup>

---

## Need Help?

<CardGroup cols={2}>
  <Card icon="book-open" title="Crowdin Translator Docs" href="https://support.crowdin.com/for-translators/">
    Official Crowdin documentation for translators.
  </Card>
  <Card icon="github" title="GitHub Issues" href="https://github.com/amruthpillai/reactive-resume/issues">
    Report issues or request new languages.
  </Card>
</CardGroup>

---

Thank you for helping make Reactive Resume accessible to users worldwide!
