-
-
Notifications
You must be signed in to change notification settings - Fork 13
~(upcoming) Translation
The Crowdin is at https://crowdin.com/project/testificate.
Join the support server for up-to-date guides, see what is ready for translation, and request new languages.
Translation strings are grouped together logically, so it makes sense to sort strings on Crowdin in the same order as the original source file.
First, click the filter button to the right of search,
Then sort by original sort order.
The first line of the context on Crowdin is the localization key. This key uniquely identifies the string. In the example in the image below, command.meta.disabled
is the key.
If the source text has arguments in curly brackets (such as {0}
or {2,number,integer}
), check below and the context on Crowdin for details.
- Use an informal tone
- Prefer clarity over brevity
- Minecraft usernames and Discord users have an unknown gender, avoid implying gender
- Don't change links unless the website has a version in your language
- Don't blame the user in warnings, prefer "{0} is not a valid number." instead of "You did not enter a valid number."
Command keys are in the format command.<category>.<command_id>.<property_name>
, as shown in the example below for &profile
.
command.player.profile.name=profile
command.player.profile.description=Get info on a Minecraft account
command.player.profile.usage=<player>
command.player.profile.aliases=p,player
command.player.profile.help=\
`{0}profile <player>` - Shows information for a Minecraft account.\n\
Includes username, UUIDs, name history, skin, capes, avatar, and more.\n\
- `<player>` can be a username or UUID.\n\
Use `{0}help usernameInput` and `{0}help uuidInput` for more help.
command.player.profile.examples=\
- `{0}profile Tis_awesomeness`\n\
- `{0}profile LadyAgnes`\n\
- `{0}profile f6489b797a9f49e2980e265a05dbc3af`\n\
- `{0}profile 069a79f4-44e9-4726-a5be-fca90e38aaf5`
-
name
- The display name of the command. Names should contain only ASCII lowercase letters and numbers, and must not start with a number. Command names must be short. Ask a question like, "What would someone who speaks my language type in to look up a player's profile?" Try to make command names memorable and guessable. -
description
- The description of the command that shows in&help <category>
. Try to keep the description brief and simple. -
usage
- The text that describes how people should use the command. Keep the brackets the same and only swap out the words inside the brackets. The argument names should be consistent. -
aliases
- A comma-separated list of command aliases. Feel free to add as many as you wish. Aliases follow the same rules as command names. The command's ID (the English name) will be automatically included if the ID is different from the display name. -
help
- This is what shows up when a user requests help for the command.{0}
is the prefix and{1}
is the bot's @mention. Markdown is allowed. The first lines should usually be a list of command usages and a short description for each (see the example above), but otherwise you can change the formatting, ordering, and length however you wish. Make sure that you keep all of the information from the source text in your translation. -
examples
- A list of examples of how to use the command. Be careful to only translate the parts of the command that actually depend on the current language. For example, in&body Tis_awesomeness overlay
, the display name of&body
and the translation foroverlay
may change, butTis_awesomeness
is a username and does not change. -
adminHelp
/adminExamples
- Only seen by bot admins and does not need to be translated. - Everything else is command-specific and should be translated.
A command will run if the user requests the command by:
- Its ID (usually the same as the English name)
- Its display name in the current language (in all languages if the command implements
IMultiNameCommand
) - Any of its aliases in the current language
If gradle check
(or the Travis CI build) passes, there are no name conflicts between commands.
Choice formats such as the one below are used when a word may or may not be plural. In this example, {0}
is the command name and {1}
is the number of arguments.
{0} takes {1,choice,0#no arguments|1#up to one argument|1<up to {1,number,integer} arguments}.
Choices are separated by a vertical bar |
, the bot picks a choice depending on what the argument is.
-
0#
= exactly 0 -
1#
= exactly 1 -
1<
= greater than 1