We'd like to translate Construct 3 in to as many languages as possible! We now have many languages available for translation. We're using a new online translation service called POEditor to help make this possible. You can sign up and start contributing for free, allowing crowd-sourced translations!
Translating Construct 3 in to French took Kyatric around 2 weeks of full-time work, so it's quite a big project. However if more people pitch in, it'll be less work per person. Please note we're keen to get high-quality translations, so you should be a fluent speaker of the language and have good spelling and grammar. It's also up to contributors to organise the translation amongst themselves, for example determining consistent terminology for things like "layout", "layer", "events" etc. Please be pro-active about co-operating and establishing common standards for translation. You may want to start a forum, chat room, or other community service with other contributors.
If you're willing to help translate Construct 3 in to one of those languages, please click this link and request access to one of those languages: https://poeditor.com/join/project/gM9NeJ7wtR
We appreciate contributions! Translators can also qualify for free subscriptions as a reward for significant contributions.
Technical notes about translations
If you help translate Construct 3, please note the following technical details:
- Placeholders like {0}, {1} are used to substitute values in to the string. They must be preserved. Every placeholder that appears in the English string must also appear in the translated string.
- There is a special placeholder {my} used for behaviors. This should not be translated (it should still appear as {my} in the translation). Do not change the case either (e.g. {My} is incorrect).
- BBCode is used for formatting in some cases, e.g.
Click [b]here[/b]
Use the same BBCode in the translation as is used in English. In some languages the phrasing may be different, but do your best to make the same emphasis.
- Keep whitespace exactly the same. Do not add whitespace where there is none in the English translation, and do not remove whitespace where it is used in English.
- The key translated-name for expressions is special. It is used to display expressions with a translation, e.g translating the "Angle" in Sprite.Angle. The translation must also be a valid expression name. This means it can't contain any spaces and must not use any of the following characters: \/:;*?\"|.,'-`!£$%^&+=<>{}()[]@#
- Do translate expressions. Wherever it makes sense to, please do translate expressions. If the user prefers to see expressions in English, there is an option in Settings for that. Therefore all expressions should be translated and the user can choose their preference.
Common mistakes to avoid
Lots of translators routinely make these mistakes. Please try to avoid them.
DO NOT use Google Translate or any other kind of machine translation. These translations are unsuitable for software. They are poor quality, formatted incorrectly, consistently violate our guidelines, and are often nonsensical. All translations are professionally reviewed when completed and any use of machine translation will cause the translation to fail review, also delaying its completion. Any use of machine translation at all may disqualify you from receiving any translation reward.
Please discuss things like terminology for specialist terms like "Sprite", "Event" and so on, and agree them with other contributors. We cannot participate in such discussions, but you must be willing to co-operate and possibly compromise on your preferred terms in order to produce a consistent, high quality translation.
Similarly, don't change other translator's strings without checking with them. If you're not just fixing a typo, you must agree on the terminology to use. Otherwise the translation will be chaotic, inconsistent, and cause other translators to become frustrated. These forums are here for you to work out a consistent approach, so please use them for that.
Preserve the grammar, e.g. capital letters and full-stops. For example if the English is "Foo bar." then don't change the case or grammar, e.g. "baz ban" - preserve both, e.g. "Baz ban."
Preserve case. Some parts of Construct are case sensitive. If the English is all lowercase e.g. "foo"
, translate it all lowercase, e.g. "bar"
. Don't change the case, e.g. "Bar"
.
Don't accidentally add whitespace: if the English is "Foo", don't add a space, e.g. "Bar ".
Keep any existing whitespace: conversely if the English is "Foo ", don't accidentally remove the space, e.g. "Bar". Note POEditor displays whitespace with small underline characters to help you spot this.
Don't add whitespace inside tags: Using a tag like [/ b] - with a space, i.e. [/_b] - is not valid. You must keep it identical to the English, without a space.
Don't add whitespace around tags: If the following English string is used:
"Foo [b]bar[/b]"
Don't add any extra spaces around tags, e.g.:
"Baz [b] ban [/b]"
or "Baz [ b ]ban[/ b]"
The whitespace should match the English, e.g.:
"Baz [b]ban[/b]"
Watch out for mixed BB tags. If a string uses two kinds of BB tag, e.g.
"[b]bold[/b] then [i]italic[/i]"
be sure to match the formatting. Don't make them both the same kinds of tag, e.g.
"[b]bold[/b] then [b]italic[/b]"
(the second tag should be "i").
We have a tool to automatically identify these mistakes. We will post lists of the mistakes to the forum to help get them corrected.
Be extra careful with updates. When we change an existing translation, we delete all existing translations so they have to be translated again. Incorrect translations (not following the above guidelines) are also deleted. Please check carefully when updating a translation. In many cases the "translation memory" feature will appear and offer to use the old translation, but that is either out of date or incorrect. Examine the English string carefully and make sure the translation corresponds to it and follows the guidelines. This is more likely to come up when a translation is mostly complete and is being maintained.
Test incomplete translations
As of r60, we're updating Construct 3 with incomplete translations. This lets you see the translation work done so far in context in the editor.
You can test incomplete translations by enabling developer mode, then the incomplete languages become available in Settings. Note that languages are updated with C3 releases, so any changes you make won't be reflected in C3 itself until the next release.