Coincide Get Coincide

Guide

Languages and translations

Coincide ships in English and 18 other languages, and Coincide Remote, its iPhone and iPad companion (coming soon), uses the same ones. The translations are machine-made and marked for review in the string catalogs, so corrections from people who speak them are welcome.

Updated

The languages

LanguageCode
English (the source)en
Chinese, Simplifiedzh-Hans
Chinese, Traditionalzh-Hant
Dutchnl
Frenchfr
Germande
Hindihi
Indonesianid
Italianit
Japaneseja
Koreanko
Polishpl
Portuguese (Brazil)pt-BR
Russianru
Spanish (Spain)es
Spanish (Latin America)es-419
Turkishtr
Ukrainianuk
Vietnamesevi

Choosing Coincide’s language

Coincide follows the language you picked for your Mac, or the one you picked for Coincide alone. To use a different language for Coincide only, open System Settings › General › Language & Region, add Coincide under Applications and choose its language, then reopen Coincide. Text that isn’t translated yet appears in English.

Reporting a bad translation

If a translation is wrong, unclear or doesn’t fit, tell us: open a bug report from Help › Report an Issue…, or use /bug in the Discord. Say which language, where in the app the text appears, what it says now and what it should say.

Fixing translations yourself

The strings live in Xcode string catalogs:

CatalogWhat it holds
Coincide/Resources/Localizable.xcstringsThe Mac app, including the text of its shared frameworks
CoincideRemote/Localizable.xcstringsCoincide Remote on iPhone and iPad. A few strings of its shared package are kept here by hand, marked “manual”.
Coincide/Resources/InfoPlist.xcstrings, CoincideRemote/InfoPlist.xcstringsThe permission texts macOS and iOS show, keyed by their Info.plist key

scripts/translations.py lists what a language is missing, checks your translations and imports them. For German, for example:

scripts/translations.py missing de > de.json      # the strings German lacks, with their English text
# translate de.json into {"key": "translation"}
scripts/translations.py check de de-translated.json
scripts/translations.py import de de-translated.json

Start the command with --catalog <path> to work on another catalog, such as --catalog CoincideRemote/Localizable.xcstrings.

What check enforces

Imported strings are marked “needs review” in the catalog. Write whole sentences with placeholders rather than pieces joined in code, so each language can order the words its own way.

When you change English text

New or changed strings fall back to English until they’re translated, so a pull request that changes text should translate it for every language. First update the catalogs with every string the code uses (this builds both apps, so it needs Xcode):

scripts/sync-strings.sh        # or: scripts/sync-strings.sh mac | ios

Then run missing, translate and import for each language, and commit the catalogs. The rest of the contributing workflow is in Build from source and CONTRIBUTING.md.