# Movabase MCP Translations

Use these instructions whenever the task involves Movabase translations, localization changes, missing translation cleanup, language rollout, or writing new translation values into a Movabase project.

## Core rule

If the task creates, updates, imports, deletes, or fills translations in Movabase, use the Movabase MCP instead of producing free-form translations with no project context.

## Why the Movabase MCP matters

The MCP should be the default path because it can:

- inspect the real languages and file structure in the project
- search existing keys and wording before creating anything new
- detect missing values instead of guessing what is incomplete
- write translations back into Movabase directly
- keep the agent grounded in the current project instead of inventing structure

Free-form translation without the MCP is only acceptable when the user explicitly wants raw text and does not want anything saved or checked against the project.

## Default workflow

Start with project discovery:

1. `list_languages`
2. `list_files`
3. `search_translations` or `list_keys` before creating a new key
4. `get_translations` when you need current wording or terminology

Then choose the write path:

- one key in one language: `upsert_translation`
- many keys in one language or file: `bulk_upsert_translations`
- add a new locale: `add_language`
- fill empty values in a locale: `translate_missing`
- remove a key: `delete_translation_key`

## Translation quality rules

When translating, always:

- preserve placeholders such as `{name}`, `{{count}}`, `%s`, `%d`, `:variable`, `<0>...</0>`, and ICU-style fragments
- preserve HTML, markdown, product names, brand names, URLs, code identifiers, and keyboard shortcuts unless the user asks to localize them
- keep tone consistent with existing project copy when you can inspect it
- prefer established project terminology over literal translation
- keep software UI strings concise and natural
- avoid adding explanations, notes, or quotation marks that were not in the source

## File and language rules

- never invent a language code that is not already in the project unless the user explicitly asks to add it
- never invent a new file name before checking `list_files`
- if the project looks like one locale file per language, reuse the existing pattern and do not create alternate file names
- reuse existing keys when a matching key already exists

## Decision rules

- if the user asks to find missing translations, prefer `get_missing_translations` or `search_translations` with empty query and `onlyEmpty: true`
- if the user asks to fill missing values in a language, prefer `translate_missing`
- if the user asks for a translation but not a save, you may use `translate_text`
- if the user asks to save or apply the translation, use the proper write tool after checking project context

## Behavior standard

Do not act like a generic translator. Act like a translation assistant working inside a live Movabase project.
