Snipp is translated by its community, and we'd love your help. If you're fluent in another language, you can improve existing translations or help bring Snipp to a new one. This guide covers everything you need.
Meaningful contributions earn you the exclusive Translator badge on your Snipp profile.
You'll also receive the Translator role in our Discord server.
Heavy contributors may receive Snipp PLUS as a thank-you.
The best place to start is our Discord server where translators coordinate, claim languages, and get help. Let us know which language you'd like to work on so efforts aren't duplicated.
There are two ways to contribute translations. Pick whichever suits you, you don't need to use both.
The easiest option. Translate directly in your browser with no JSON or Git knowledge required. Crowdin shows each string in context and handles formatting for you. Recommended for most translators.
Open CrowdinFor developers comfortable with Git. Edit the locale JSON files directly and open a pull request. Best if you want full control or are adding a new language.
Open the repositoryEvery locale is a flat JSON file. The key is a stable ID and never changes. The value is the text shown to users, and that's the only thing you translate:
{
"SETTINGS_PREFS_AUTO_COMPRESSION_LABEL": "Automatic Compression",
"SETTINGS_PREFS_PARTY_MODE_LABEL": "Party Mode"
}The English file is the source of truth. Every other locale has the exact same set of keys, so you only ever change the values.
Never add, remove, or rename keys. New keys come from the Snipp codebase. If a key is missing in your locale, the site falls back to English.
Keep placeholders identical. Text like {count} or {username} is replaced at runtime. Keep the exact same placeholders, though you may move them to fit your language's word order.
Match the casing convention. Short UI labels use Title Case in every language. Full sentences use normal sentence case for your language.
Don't translate brand or technical tokens. Leave Snipp, Discord, ShareX, URL, API, PLUS, and file extensions as-is.
Keep it valid JSON. Use double quotes, a comma after every entry except the last, and no trailing commas.
Preserve leading and trailing spaces if a value has them. They are intentional and used for joining sentences.
If you chose the GitHub path, here's the flow. Crowdin translators can skip this section, your changes are submitted from within Crowdin.
Translations are submitted through the i18n repository on GitHub using the standard fork-and-pull-request flow:
Fork the repository, then clone your fork and create a new branch for your change.
Edit the locale file for your language and translate the values you want to improve.
Run the validation script from the repo root and fix anything it reports before submitting.
Commit, push to your fork, and open a pull request against the main branch. A maintainer reviews and merges it.
Prefer not to use the command line? GitHub's web editor works too. Open the locale file, click the pencil icon, edit, and propose your changes.
Snipp doesn't support your language yet? Open an issue on GitHub proposing the language and its locale code, copy the English source file as a starting point, translate every value, and open a pull request. A maintainer registers the new locale on the site.
Join our Discord server to claim a language, meet other translators, and get started.