Language Config logo

Language Config

Community
indranilbanerjee
language-config

Configure brand languages: secondary languages, do-not-translate terms, locale formats. "never translate our product name"

Overview

Publisherindranilbanerjee
Repositorydigital-marketing-pro
Skill namelanguage-config
Stars
866
Forks
138
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by indranilbanerjee on GitHub. Read the source before you install it.

Installation

Install the Language Config AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/language-config
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git /tmp/digital-marketing-pro
mkdir -p .claude/skills
cp -r /tmp/digital-marketing-pro/skills/language-config .claude/skills/language-config
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Language Config in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Language Config on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Language Config is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

/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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. For add-dnt / remove-dnt actions: Validate that terms are non-empty strings. For add: append each term to language.do_not_translate array, avoiding duplicates, and confirm each term added. For remove: remove matching terms (case-sensitive match), warn if a term is not found in the list. Display the updated do-not-translate list after changes. For batch operations (comma-separated input), process all terms and report results for each.
  7. For set-translation-pref action: Accept any non-empty server-name slug — the set of usable translation MCPs is whatever the user has connected, not a shipped list. If the name does not appear in .mcp.json right now, warn ("no configured MCP server matches '{name}' — connect it or the router will fall back to its ladder") but record the preference anyway. Validate that the language code is in the brand's configured languages (primary or secondary). Set language.translation_preferences[language_code] to the specified service name. Note: this overrides the automatic routing in language-router.py for this specific language — the user's explicit preference takes priority over default routing logic.
  8. For set-locale-format action: Validate the language-region code. Set fields under language.locale_formatting[language_region] for the provided preferences (date_format, number_format, currency_format, measurement). If not all fields are provided, retain existing values for omitted fields. Provide format previews showing how dates, numbers, currency, and measurements will render with the configured format (e.g., "Date preview: 13/02/2026", "Currency preview: EUR 1.234,56").
  9. Save updated profile.json: Write the modified language configuration back to the brand profile. Validate JSON integrity before saving.
  10. Confirm changes with before/after comparison: Display a clear diff showing exactly what changed — old value versus new value for each modified field. For array changes (languages, DNT terms), show items added or removed. Provide a summary of the current complete language configuration after all changes.

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

Frequently asked questions

What does the Language Config AI skill do?

Configure brand languages: secondary languages, do-not-translate terms, locale formats. "never translate our product name"

Why use Language Config on TypingMind?

Because you install it once and use it with any model. Language Config is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Language Config in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/language-config. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Language Config?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Language Config?

As many as you like. As long as a model supports skills, you can use Language Config with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Language Config AI skill free?

Yes. It is published on GitHub by indranilbanerjee under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇