Translate Chatty to main page
Parts of Chatty can be translated into different languages, and you can help!
Getting started
- Join the localization project
- Tell me the account name you used so I can approve it. The best way is via #localization on Discord, but you can also send a mail.
Note: If the language you want to work on hasn't been added yet, tell me, then proceed with step 1 once it has been added.
Note that not everything can be translated yet, and the help pages probably won't be at all, since it would be too much work to keep updated.
Translation Guidelines
This video explains some of these things as well.
- You don't have to translate everything. If there is no good translation for something, just keep it in English (this especially applies if the English term is commonly used in that language and better fitting).
- Strings that aren't translated will automatically fallback to English, so please don't just copy the English strings to fill translations, unless the English string is the translation (see previous point).
- If you're translating a term specific to Twitch or Streaming, try to use the "official" translation from the Twitch website.
- Try to be consistent within each language, for example check other strings for already used terms.
- Try to replicate things like strings ending with a colon (e.g.
Language:
) or HTML codes. - In some cases (like button labels) it can be important that the translated text is not too long, so it may be necessary to rephrase things.
- Translations that are marked as Fuzzy should be reviewed again, usually because the original string has changed and the translation may have to be updated. You can filter and order by Fuzzy strings. If you are satisfied that the translation is correct, you can remove the Fuzzy flag.
Questions / Discussion
- The comments for a specific translation item sometimes give additional hints about the string and can be used for basic discussion.
- Another (probably better) place to discuss things is #localization on Discord.
Substitutions
Something like {0}
in a string means it is replaced with the number 0
parameter. It should say in a comment what it gets replaced with (although most of the time it's clear from context already).
- Example:
Join #{0}
- When
{0}
isjoshimuz
turns intoJoin #joshimuz
Substitutions use the MessageFormat class. Mostly it's enough to just stick close to the template.
Important: Any single quote ( This does not seem to be the case anymore. Quotes are automatically escaped on export by POEditor, so they should not be escaped anymore.'
) in a string that contains a replacement needs to be escaped with a single quote (e.g. Can''t join ''{0}''
).
Choice
The more advanced {0,choice,<choices>}
pattern is used to decide between two strings depending on the value in the number 0
parameter. This is commonly used to decide between a singular and plural form.
- Example:
Join {0,choice,1#channel|1<{0} channels}
1#
means "exactly 1" (in which case it chooseschannel
1<
means "more than 1" in which case it chooses{0} channels
(where the{0}
is replaced as well)
- When
{0}
is1
turns intoJoin channel
- When
{0}
is2
turns intoJoin 2 channels
- When
{0}
is30
turns intoJoin 30 channels
- Example:
{0} {0,choice,1#Hour|1<Hours}
- When
{0}
is1
turns into1 Hour
- When
{0}
is2
turns into2 Hours
After Translation
Translations are commited to the repository by myself, since the files have to be converted into the format I want (e.g. proper structure and order of items). The process is mostly automated.
Note: The names of contributors to each language (as registered on POEditor) are added to the top of the language file. If you want to be excluded from that or want to appear with a different name, let me know.
Other
Changes of the original English strings have to be done via GitHub (the normal way via Pull Requests).