Default localization strings

Be sure to read the Localization Guide for information on how localization templates and template scripting work

When translating these strings for your own localizations remember that it's not necessary to place them all into a single file. You can separate them into multiple files and they will all be loaded and merged together into a single set of strings for one language as long as they all have the same language name as the first part of the file name. For example, you could separate strings used in two separate commands into files en_us.cmd.foo.lang and en_us.cmd.bar.lang.

Note: Anything after the language name and before .lang in a lang file's filename is not used for anything and can simply be used as a distinction between different lang files for the same language.

This list is automatically generated and may be incomplete during development until YAMDBF 3.0.0 is finalized.

[CMD_BLACKLIST_ERR_NOSELF]
You can not blacklist your own account.

[CMD_BLACKLIST_ERR_NOBOT]
Bots cannot call commands and thus do not need to be blacklisted.

[CMD_BLACKLIST_ERR_OWNERONLY]
Only bot owners may blacklist globally.

[CMD_BLACKLIST_ERR_ALREADYGLOBAL]
That user is already globally blacklisted.

[CMD_BLACKLIST_ERR_BADTARGET]
You may not use this command on that person.

[CMD_BLACKLIST_ERR_ALREADYBLACKLISTED]
That user is already blacklisted in this server.

[CMD_BLACKLIST_GLOBALSUCCESS]
Added {{ user }} to the global blacklist.

[CMD_BLACKLIST_SUCCESS]
Added {{ user }} to the blacklist for this server.

[CMD_WHITELIST_ERR_OWNERONLY]
Only bot owners may remove a user from the global blacklist.

[CMD_WHITELIST_ERR_NOTGLOBAL]
That user is not currently on the global blacklist.

[CMD_WHITELIST_ERR_NOTBLACKLISTED]
That user is not currently blacklisted in this server.

[CMD_WHITELIST_GLOBALSUCCESS]
Removed {{ user }} from the global blacklist.

[CMD_WHITELIST_SUCCESS]
Removed {{ user }} from the blacklist for this server.

[CMD_CLEARLIMIT_UNKNOWN_COMMAND]
Failed to find a command with the name `{{ commandName }}`

[CMD_CLEARLIMIT_SUCCESS]
Successfully cleared role limits for command: `{{ commandName }}`

[CMD_DISABLEGROUP_ERR_NOEXIST]
Command group "{{ group }}" does not exist.

[CMD_DISABLEGROUP_ERR_DISABLED]
Command group "{{ group }}" is already disabled or is not allowed to be disabled.

[CMD_DISABLEGROUP_SUCCESS]
**Disabled command group "{{ group }}"**

[CMD_ENABLEGROUP_ERR_NOEXIST]
Command group "{{ group }}" does not exist.

[CMD_ENABLEGROUP_ERR_ENABLED]
Command group "{{ group }}" is already enabled.

[CMD_ENABLEGROUP_SUCCESS]
**Enabled command group "{{ group }}"**

[CMD_EVAL_ERR_NOCODE]
**ERROR:**
```xl
No code provided to evaluate.
```

[CMD_EVAL_RESULT]
**INPUT:**
```js
{{ code }}
```
**OUTPUT:**
```xl
{{ result }}
```

[CMD_EVAL_ERROR]
**INPUT:**
```js
{{ code }}
```
**ERROR:**
```xl
{{ error }}
```

[CMD_HELP_COMMAND_LIST]
Available commands: (Commands marked with `*` are server-only)
```ldif
{{ commandList }}
## A newline after the end of this codeblock gives
## weird spacing between it and the last line.
## I don't recommend using one
```Use `{{ usage }}` or `{{ mentionUsage }}` for more info

[CMD_HELP_UNKNOWN_COMMAND]
A command by that name could not be found or you do
not have permission to view it.

[CMD_HELP_SERVERONLY]
[Server Only]

[CMD_HELP_OWNERONLY]
[Owner Only]

[CMD_HELP_ALIASES]
## 'Aliases: foo, bar' | 'Alias: foo'
{{! args.aliases.split(',').length > 1 ? 'Aliases' : 'Alias' !}}: {{ aliases }}

[CMD_HELP_CODEBLOCK]
## I feel ldif is the best codeblock language for
## displaying all of the help commands but it could
## be changed without any consequence if desired
```ldif
{{ serverOnly ?}}
{{ ownerOnly ?}}
Command: {{ commandName }}
Description: {{ desc }}
{{ aliasText ?}}
Usage: {{ usage }}
{{ info ?}}
```

[CMD_HELP_REPLY_CMD]
Sent you a DM with command help information.

[CMD_HELP_REPLY_ALL]
Sent you a DM with a list of commands.

[CMD_HELP_REPLY_FAIL]
Failed to DM help information. Do you have DMs blocked?

[CMD_LIMIT_ERR_UNKNOWN_COMMAND]
Failed to find a command with the name `{{ commandName }}`

[CMD_LIMIT_ERR_INVALID_GROUP]
Cannot limit base commands.

[CMD_LIMIT_ERR_ALREADY_LIMITER]
Role `{{ roleName }}` is already a limiter for command: `{{ commandName }}`

[CMD_LIMIT_ERR_INVALID_ROLE]
Failed to find {{!
    args.invalidRoles.split(',').length > 1 ? 'roles' : 'role'
!}}: {{ invalidRoles }}

[CMD_LIMIT_ERR_NO_ROLES]
Failed to add any roles to the command.

[CMD_LIMIT_SUCCESS]
Successfully added {{!
    args.roles.split(',').length > 1 ? 'roles' : 'role'
!}}: {{ roles }} to the limiter for command: `{{ commandName }}`

[CMD_LISTGROUPS_GROUPS]
Command groups:
{{!
    args.groups
        .split(', ')
        .map(g => `${args.disabledGroups.split(', ').includes(g) ? '*' : ' '}${g}`)
        .join('\n')
!}}

[CMD_RELOAD_ERR_UNKNOWN_COMMAND]
Command "{{ commandName }}" could not be found.

[CMD_RELOAD_SUCCESS]
{{!
    args.commandName ? 
        `Command "${args.commandName}"` :
        'Commands'
!}} reloaded. ({{ time }} ms)

[CMD_SETLANG_LIST]
Available languages: (Language marked with `*` is the current language)
```css
{{ langList }}
## Be sure to preserve the `{{ prefix }}setlang #` part
```Use `{{ prefix }}setlang #`, where `#` is the number of the language to set the
language to use for this server

[CMD_SETLANG_ERR_INVALID]
That is not a valid language choice!

[CMD_SETLANG_SUCCESS]
Set language for this server to: `{{ lang }}`

[CMD_PREFIX_CURRENT]
{{!
    args.prefix ?
        `Current prefix is \`${args.prefix}\`` :
        'There is currently no prefix.'
!}}

[CMD_PREFIX_ERR_CHAR_LIMIT]
Prefixes may only be up to 10 chars in length.

[CMD_PREFIX_ERR_INVALID_CHARS]
Prefixes may not contain backticks or backslashes.

[CMD_PREFIX_SUCCESS]
{{!
    args.prefix === '' ?
        'Command prefix removed.' :
        `Command prefix set to \`${args.prefix}\``
!}}

[DISPATCHER_ERR_RATELIMIT_EXCEED_GLOBAL]
You have used too many commands and may not use any more for **{{ time }}**.

[DISPATCHER_ERR_RATELIMIT_EXCEED]
You have used this command too many times and may not use it again for **{{ time }}**.

[DISPATCHER_ERR_UNKNOWN_COMMAND]
Sorry, I could not recognize any command in your message.
Try saying "help" to view a list of commands.

[DISPATCHER_ERR_GUILD_ONLY]
That command is for servers only. Try saying "help" to view a list of commands.

[DISPATCHER_ERR_MISSING_CLIENT_PERMISSIONS]
**I must be given the following permission{{!
    args.missing.split(', ').length > 1 ? 's' : ''
!}} for that command to be usable in this channel:**
```css
{{ missing }}
```

[DISPATCHER_ERR_MISSING_CALLER_PERMISSIONS]
**You are missing the following permission{{!
    args.missing.split(', ').length > 1 ? 's' : ''
!}} for that command:**
```css
{{ missing }}
```

[DISPATCHER_ERR_MISSING_ROLES]
## This message is used for the missing roles error
## and for failing to pass the command limiter
**You must have {{!
    args.roles.split(', ').length > 1
        ? 'one of the following roles'
        : 'the following role'
!}} to use that command:**
```css
{{ roles }}
```

[EXPECT_ERR_MISSING_VALUE]
Missing or null value for arg: `{{ name }}`{{!
    args.type.split(', ').length > 1
        ? `\nExpected one of: ${args.type}`
        : `, expected ${args.type}`
!}}
Usage: `{{ usage }}`

[EXPECT_ERR_INVALID_OPTION]
in arg `{{ name }}`: `{{ arg }}` is not a valid option
Usage: `{{ usage }}`
Valid options for arg `{{ name }}`: {{ type }}

[EXPECT_ERR_EXPECTED_TYPE]
## This is a developer error message and does
## not need to be translated. I have only extracted
## this string for ease of re-use as it is used a lot
in arg `{{ name }}`: `{{ expected }}` expected, got `{{ type }}`

[RESOLVE_TYPE]
## Only translate the return values here
{{!
    switch (args.type)
    {
        case 'User': return 'user';
        case 'Member': return 'member';
        case 'BannedUser': return 'banned user';
        case 'Channel': return 'channel';
        case 'Role': return 'role';
        default: return;
    }
!}}

[RESOLVE_ERR_RESOLVE_NUMBER]
in arg `{{ name }}`: `{{ arg }}` could not be resolved to a number.
Usage: `{{ usage }}`

[RESOLVE_ERR_RESOLVE_DURATION]
in arg `{{ name }}`: `{{ arg }}` could not be resolved to a duration.
Usage: `{{ usage }}`
Duration examples: `10m`, `2h`, `1.5d`

[RESOLVE_ERR_RESOLVE_TYPE_ID]
in arg `{{ name }}`: Failed to find a {{! res('RESOLVE_TYPE') !}} with ID `{{ arg }}`
Usage: `{{ usage }}`

[RESOLVE_ERR_RESOLVE_TYPE_TEXT]
in arg `{{ name }}`: Failed to find a {{! res('RESOLVE_TYPE') !}} containing the text `{{ arg }}`
Usage: `{{ usage }}`

[RESOLVE_ERR_MULTIPLE_USER_RESULTS]
Found multiple potential matches for arg `{{ name }}`:
{{!
    const users = args.users.split(', ');
    if (users.length > 5)
    {
        const slice = users.slice(0, 5);
        return `${slice.join(', ')}, plus ${users.length - slice.length} more.`
    }
    else return users.join(', ');
!}}
Please refine your search or consider using an ID/mention
Usage: `{{ usage }}`

[RESOLVE_ERR_MULTIPLE_CHANNEL_RESULTS]
Found multiple potential matches for arg `{{ name }}`:
{{!
    const channels = args.channels.split(', ');
    if (channels.length > 5)
    {
        const slice = channels.slice(0, 5);
        return `${slice.join(', ')}, plus ${channels.length - slice.length} more.`
    }
    else return channels.join(', ');
!}}
Please refine your search or consider using an ID/channel link
Usage: `{{ usage }}`

[RESOLVE_ERR_MULTIPLE_ROLE_RESULTS]
Found multiple potential matches for arg `{{ name }}`:
{{!
    const roles = args.roles.split(', ');
    if (roles.length > 5)
    {
        const slice = roles.slice(0, 5);
        return `${slice.join(', ')}, plus ${roles.length - slice.length} more.`
    }
    else return roles.join(', ');
!}}
Please refine your search or consider using an ID/role mention
Usage: `{{ usage }}`