> For the complete documentation index, see [llms.txt](https://cyr1en.gitbook.io/commandprompter/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cyr1en.gitbook.io/commandprompter/configuration/internationalization-i18n.md).

# Internationalization (I18N)

Set `Locale` in `config.yml` and reload:

```yaml
Locale: en_US
```

Bundled locales are `en_US`, `es_ES`, `fr_FR`, `ja_JP`, `ko_KR`, `pirate`, `pl_PL`, `pt_BR`, `tl_PH`, and `zh_CN`.

## Custom translations

Create a UTF-8 properties file named:

```
plugins/CommandPrompterPaper/locales/messages_<locale>.properties
```

Only overridden keys are required. Resolution for each key is:

1. the on-disk selected-locale override;
2. the selected locale bundled in the plugin;
3. bundled `en_US`.

Values support MiniMessage, built-in `%name%` substitutions, and PlaceholderAPI expansion against the receiving player (player context is passed to localized messages). Run `/cmdp reload` after changing the locale or file.

## Message keys

| Key                                   | Description                                        | Placeholder(s) |
| ------------------------------------- | -------------------------------------------------- | -------------- |
| `prompt.cancelled`                    | Prompt session was cancelled.                      | None           |
| `prompt.timed_out`                    | Prompt answer timer expired.                       | None           |
| `prompt.error.invalid_title_filter`   | Standalone `title` or `body` Dialog layout filter. | None           |
| `prompt.error.session_active`         | A player already has an active session.            | None           |
| `prompt.error.command_failed`         | Final command dispatch failed.                     | `%message%`    |
| `validation.invalid_integer`          | `-int` validation failed.                          | None           |
| `validation.invalid_string`           | `-str` validation failed.                          | None           |
| `player_ui.search_instruction`        | Player UI search instruction.                      | None           |
| `dialog.no_options`                   | Dialog tab completion returned no options.         | None           |
| `dialog.too_many_options`             | Dialog tab completion exceeded its threshold.      | `%count%`      |
| `command.error.players_only`          | A player-only command was used by another sender.  | None           |
| `command.error.missing_preset`        | A referenced preset was not found.                 | None           |
| `command.error.missing_validator`     | An unknown input validator is referenced.          | None           |
| `command.cancel.no_active_prompt`     | No active session exists to cancel.                | None           |
| `command.delegate.unknown_permission` | Unknown Player Delegate permission group.          | `%key%`        |
| `command.reload.success`              | Reload succeeded.                                  | None           |
| `command.reload.failed`               | Reload failed.                                     | `%error%`      |
| `command.version`                     | Installed plugin version.                          | `%version%`    |

## Migration messages

Migration and undo use the `command.migrate.*` and `command.migrate.undo.*` message keys, including localized no-change, success, and error feedback. See [Prompt migration](/commandprompter/features/prompt-migration.md#localized-messages) for override examples and placeholders.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cyr1en.gitbook.io/commandprompter/configuration/internationalization-i18n.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
