| name | language-config |
| description | Configure the brand's multilingual settings in profile.json — primary and secondary languages, do-not-translate terms, preferred translation service per language (routed by language family across the translation MCPs you have connected), and locale formatting for dates, numbers, and currency — with view/add/remove/reset actions and a before/after diff on every change. Triggers on "/digital-marketing-pro:language-config", "add German as a target language", "never translate our product name", "set the date format for the UK site", "which languages is this brand set up for". This configuration is read by every multilingual command — /digital-marketing-pro:translate-content, /digital-marketing-pro:multilingual-score, /digital-marketing-pro:language-audit, and /digital-marketing-pro:hreflang-check. |
/digital-marketing-pro:language-config
Purpose
Configure and manage multilingual settings for the active brand. This command controls the language infrastructure that powers all translation, localization, and multilingual audit commands in the plugin. It sets the primary content language (the source language for all translations), secondary and target languages (which markets and languages the brand operates in), do-not-translate terms (brand names, product names, trademarked phrases, and technical terms that must appear identically in every language), preferred translation service per language (routing to the optimal MCP for each language pair), and locale-specific formatting rules (date, number, currency, measurement formats per market).
This configuration persists in the brand profile and is referenced by every multilingual command — translate, transcreate, multilingual-score, language-audit, hreflang-check, and any content creation targeting non-primary languages. Getting this configuration right upfront prevents repeated corrections downstream and ensures consistent multilingual output across all workflows.
Input Required
The user must provide (or will be prompted for):
- Configuration action: What to do —
view (display all current language settings), set-primary (change the primary/source language), add-language (add a secondary/target language), remove-language (remove a secondary language), add-dnt (add a do-not-translate term), remove-dnt (remove a do-not-translate term), set-translation-pref (set preferred translation service for a language), set-locale-format (set locale-specific formatting for a language-region), or reset (restore language config to defaults)
- Language code (for language actions): ISO 639-1 language code with optional ISO 3166-1 region (e.g.,
en, en-US, de-DE, hi-IN, ja-JP, pt-BR). Required for set-primary, add-language, remove-language, set-translation-pref, and set-locale-format actions
- Term (for DNT actions): The exact term to add or remove from the do-not-translate list. Required for add-dnt and remove-dnt. Can be a single term or a comma-separated list of terms to add/remove in batch
- Translation service (for set-translation-pref): The preferred translation MCP server for the specified language — any server name the user has connected (free-form; validated as a non-empty slug). The preference is the user's explicit choice and outranks the router's capability-based selection. If the named server is not currently in
.mcp.json, warn but still record it (the user may connect it later). Required for set-translation-pref action
- Formatting preferences (for set-locale-format): Locale-specific format settings —
date_format (e.g., DD/MM/YYYY, MM/DD/YYYY, YYYY-MM-DD), number_format (decimal and thousands separators, e.g., "1,234.56" or "1.234,56"), currency_format (symbol position and spacing, e.g., "$1,234" or "1.234 EUR"), measurement (metric or imperial). Any subset can be provided; omitted fields retain current values
Process
- Load brand context: Read
~/.claude-marketing/brands/_active-brand.json for the active slug, then load ~/.claude-marketing/brands/{slug}/profile.json. Apply brand voice, compliance rules for target markets (skills/context-engine/compliance-rules.md), and industry context. Also check for guidelines at ~/.claude-marketing/brands/{slug}/guidelines/_manifest.json — if present, load restrictions. Check for agency SOPs at ~/.claude-marketing/sops/. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults.
- Read current language configuration: Extract the
language object from profile.json containing primary_language, secondary_languages, content_languages, do_not_translate, translation_preferences, and locale_formatting. If the language object does not exist yet (new brand or pre-multilingual setup), initialize it with sensible defaults: primary_language set to "en", empty arrays for secondary_languages and do_not_translate, and empty objects for translation_preferences and locale_formatting.
- For view action: Display all current language settings in a clear, structured format — primary language with full name (e.g., "en-US: English (United States)"), all secondary languages with full names, the complete do-not-translate term list, translation service preferences per language (showing which MCP handles each), locale formatting rules per language-region, and a summary of which translation services are configured versus using auto-routing defaults.
- For set-primary action: Validate the provided language code against ISO 639-1 (and ISO 3166-1 if region included). Check that the language is supported by at least one configured translation MCP via
language-router.py --action supported-languages. Update profile.json field language.primary_language to the new value. If the old primary language is not already in secondary_languages and the user has content in it, suggest adding it as a secondary language to maintain existing translations.
- For add-language / remove-language actions: Validate the language code. For add: append to both
language.secondary_languages and language.content_languages arrays (avoiding duplicates). Run language-router.py --action route --source en --target {code} --brand {slug} and present its capability criteria plus any resolved service (connected servers or existing preference) — recommend by capability fit, never by a memorized product name — and prompt the user to confirm or override. Provide default locale formatting for the language-region. For remove: remove from both arrays, warn if content exists in this language (it will no longer be targeted by multilingual commands), and ask for confirmation before removing.
Output
A structured language configuration result containing:
- Current language configuration display: Complete view of all language settings after changes — primary language, secondary languages list with full names, content languages, do-not-translate terms, translation preferences per language, and locale formatting per language-region
- Changes made: Before/after comparison for every modified field, clearly showing what was added, removed, or updated
- Supported languages reference: Output from
language-router.py --action supported-languages showing which languages are available and which translation service handles each, so the user can make informed decisions about adding languages
- Translation service recommendation: For each configured language, the recommended translation MCP based on language-router.py routing logic, with the user's override noted where applicable — helping the user understand which service will handle their translations and why
- Locale formatting defaults: For each configured language-region, the default date, number, currency, and measurement formats with preview examples — making it easy to verify formatting is correct before it affects content output
Agents Used
- localization-specialist — Validates language codes against ISO standards, recommends translation routing per language by capability fit (native Indic coverage, European formality registers, CJK script handling — judged against whatever services the user has connected), provides locale formatting defaults and previews per language-region, and ensures the language configuration is complete and consistent for downstream multilingual workflows