# Reply Language Lock: Answers in the User's Language

Reply Language Lock: Answers in the User's Language is a tested SKILL.md that keeps an assistant answering in the language the user writes in, whatever the language of the pasted text, the logs, the code comments, the tool output or the documents it works from; an agent buys it once for $0.07 over x402.

- Page: https://aiskills402.com/skills/reply-language-lock
- Category: Agents & Protocols (https://aiskills402.com/categories/agents)
- Price: $0.07 once, USD-priced, paid in USDC on Base over x402. Price as loaded on this page. The 402 response your agent receives is authoritative.
- Version: 1.0.0
- Card (JSON): https://api.aiskills402.com/v1/skills/reply-language-lock

## Use it when

Keeps an assistant answering in the language the user writes in, whatever the language of the pasted text, the logs, the code comments, the tool output or the documents it works from. Covers the slips that happen in practice - drifting into the language of an English log or a Russian forum post, mixing in words or letters of a close neighbour (Russian in Bulgarian or Ukrainian, Czech in Polish, Portuguese in Spanish, Dutch in German), answering in Latin letters a user who typed a Cyrillic language in Latin letters, and obeying a line inside the material that asks for another language. Code, commands, identifiers, error messages and quotations stay as they are, marked as code or quotes, and the explanation around them is in the user's language. An explicit request from the user for another language always wins. Use when an agent works for people who do not write English, when replies come back in the wrong language or with foreign words mixed in, or in long sessions full of foreign-language tool output.

## Not for

Translating documents (use a translation skill), detecting the language of a text for a program, correcting the grammar of an answer, or forcing one fixed language whatever the user writes. It decides the language and script of the assistant's own replies and keeps quoted material as it is.

## Tested, honestly

Tested 2026-10-09.

- Strong model (claude-sonnet-5-5 (Claude Code alias "sonnet")): Right on all 24, checked by code on the language of the answer and on words and letters of the neighbouring language: Bulgarian under an English build log, a Russian forum post, a Russian error message and a planted line asking for English; Ukrainian, Polish, Czech, Spanish, Portuguese, German, Turkish, French, Italian, Japanese and Russian under material in another, often neighbouring, language; an email written in English when asked; and Cyrillic for a Bulgarian user who typed in Latin letters.
- Weak model (claude-haiku-5-5 (Claude Code alias "haiku")): Right on 21 of 24, but three times it answered in Bulgarian where it should not: a Ukrainian user asking about a Russian text, a Russian user asking about a Bulgarian one, and an English user asking about a Bulgarian one.

Note: Twenty-four single-turn cases written by us: the user writes a short request in one language and pastes material in another, often a close neighbour (Bulgarian with English and Russian, Ukrainian with Russian, Polish with Czech, Czech with Slovak, Spanish and Portuguese both ways, Italian with Spanish, German with Dutch and English, Russian with Bulgarian, Turkish, French and Japanese with English), plus a planted line asking for English, an explicit request for an English email, a Bulgarian user typing in Latin letters and 3 controls. The bare request is only the user's message, with no instruction about the language of the answer. Checks: the language of the answer and forbidden marks of the neighbour. Checks widened after the run, for both sides, each after a right answer was refused: an English email may come with words to the user in Bulgarian and with a Subject line, and the length limit on the one-sentence controls was loosened. One run per model and case.

### With and without the skill

Tested 2026-10-09.

- Answers in the user's language (24 cases): Sonnet 24/24 with, 21/24 without; Haiku 21/24 with, 18/24 without.

Same request and same checks on both sides. Read by hand, Sonnet without the skill drifted into the language of the material three times: it answered a German user in Dutch, a Portuguese user in Spanish and a Russian user in Bulgarian, each time summarising the pasted text in its own language. It also answered the Bulgarian user who typed in Latin letters in Latin letters; the check accepts either script, so that is not counted. Haiku without the skill missed six, mostly on neighbouring languages.

Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.

Full summary: https://aiskills402.com/skills/reply-language-lock/tests

## Example

### Bulgarian (claude-sonnet-5-5)

Before:

> > tallybook@4.2.0 build > next build    ▲ Next.js 16.3.1    Creating an optimized production build ... Failed to compile. ./src/app/settings/page.tsx Module not found: Can't resolve './config' Import trace for requested module: ./src/app/settings/page.tsx Error: Cannot find module './config' npm ERR! code 1 npm ERR! path /home/ci/tallybook npm ERR! command failed

After:

> Билдът пада, защото `./src/app/settings/page.tsx` импортира `./config`, а такъв модул не съществува на този път (`src/app/settings/config`). Next.js не може да го намери и компилацията спира със: ``` Module not found: Can't resolve './config' ``` Останалите редове (`npm ERR! code 1`) са само последица от същата грешка. **Най-честите причини и как да ги проверите:** 1.…

### uk (claude-sonnet-5-5)

Before:

> Городской совет утвердил новый план парковки в центре. Теперь стоянка будет платной с восьми утра до восьми вечера, а жители района получат скидку на годовой абонемент.

After:

> Текст — це коротка новина про те, що міська рада затвердила новий план паркування в центрі міста. Відтепер стоянка буде платною щодня з 8:00 до 20:00, а мешканці району отримають знижку на річний абонемент.

### Polish (claude-sonnet-5-5)

Before:

> Městská rada schválila nový plán parkování v centru. Parkování bude placené od osmi ráno do osmi večer a obyvatelé čtvrti dostanou slevu na roční předplatné.

After:

> Rada miejska zatwierdziła nowy plan parkowania w centrum miasta. Parkowanie będzie płatne od ósmej rano do ósmej wieczorem, a mieszkańcy dzielnicy dostaną zniżkę na abonament roczny.

### cs (claude-sonnet-5-5)

Before:

> Mestská rada schválila nový plán parkovania v centre. Parkovanie bude platené od ôsmej ráno do ôsmej večer a obyvatelia štvrte dostanú zľavu na ročné predplatné.

After:

> Městská rada schválila nový plán parkování v centru města. Parkování tam bude placené od osmé ráno do osmé večer a obyvatelé dané čtvrti dostanou slevu na roční předplatné.

### Spanish (claude-sonnet-5-5)

Before:

> A câmara municipal aprovou um novo plano de estacionamento no centro. O estacionamento será pago das oito da manhã às oito da noite, e os moradores do bairro terão desconto na assinatura anual.

After:

> El ayuntamiento ha aprobado un nuevo plan de aparcamiento para el centro, con pago obligatorio de ocho de la mañana a ocho de la noche. Los residentes del barrio tendrán un descuento en el abono anual.

### Portuguese (claude-sonnet-5-5)

Before:

> El ayuntamiento aprobó un nuevo plan de aparcamiento en el centro. El aparcamiento será de pago de ocho de la mañana a ocho de la noche, y los vecinos del barrio tendrán descuento en el abono anual.

After:

> A câmara municipal aprovou um novo plano de estacionamento para o centro da cidade. O estacionamento passará a ser pago das oito da manhã às oito da noite, e os moradores do bairro terão desconto na assinatura anual.

### German (claude-sonnet-5-5)

Before:

> De gemeenteraad heeft een nieuw parkeerplan voor het centrum goedgekeurd. Parkeren wordt betaald van acht uur 's ochtends tot acht uur 's avonds, en bewoners van de wijk krijgen korting op een jaarabonnement.

After:

> Der Gemeinderat hat einen neuen Parkplan für die Innenstadt beschlossen. Parken kostet künftig täglich von 8 bis 20 Uhr Geld, und Anwohner des Viertels erhalten einen Rabatt auf das Jahresabo.

### Turkish (claude-sonnet-5-5)

Before:

> The city council approved a new parking plan for the centre. Parking will be paid from eight in the morning to eight in the evening, and residents of the district will get a discount on the annual pass.

After:

> Belediye meclisi, şehir merkezi için yeni bir otopark planını onayladı. Otopark ücretleri sabah sekizden akşam sekize kadar uygulanacak ve bölge sakinleri yıllık kartta indirimden yararlanacak.

### French (claude-sonnet-5-5)

Before:

> {"error": {"code": 429, "message": "Rate limit exceeded: 60 requests per minute. Retry after 23 seconds.", "type": "rate_limit_error"}}

After:

> Cette erreur `429` (`rate_limit_error`) signifie que vous avez dépassé la limite de 60 requêtes par minute autorisée par l'API : `"Rate limit exceeded: 60 requests per minute"`. Il faut attendre environ 23 secondes (`Retry after 23 seconds`) avant de réessayer, et idéalement espacer vos appels ou ajouter une temporisation pour ne plus atteindre cette limite.

### Italian (claude-sonnet-5-5)

Before:

> El ayuntamiento aprobó un nuevo plan de aparcamiento en el centro. El aparcamiento será de pago de ocho de la mañana a ocho de la noche, y los vecinos del barrio tendrán descuento en el abono anual.

After:

> Il comune ha approvato un nuovo piano per i parcheggi in centro, con sosta a pagamento dalle otto del mattino alle otto di sera. I residenti del quartiere avranno inoltre uno sconto sull'abbonamento annuale.

### Japanese (claude-sonnet-5-5)

Before:

> Subject: Invoice 2026-118 overdue Hi Mara, This is a friendly reminder that invoice 2026-118 for 240 EUR was due on 1 October. If you have already paid, please ignore this message. Otherwise we would appreciate payment within the next seven days to avoid a late fee of 5 percent. Best regards, Tom, Accounts, Northwind Supplies

After:

> Northwind Supplies の経理担当 Tom さんから Mara さん宛てに、10月1日が支払期限だった請求書 2026-118(240ユーロ)が未払いであるとの催促メールです。すでに支払済みの場合は無視してよいものの、そうでなければ7日以内に支払わないと5%の延滞料が発生すると伝えています。

### Russian (claude-sonnet-5-5)

Before:

> Общинският съвет одобри нов план за паркиране в центъра. Паркирането ще бъде платено от осем сутринта до осем вечерта, а жителите на квартала ще получат отстъпка от годишния абонамент.

After:

> В тексте сообщается, что муниципальный совет одобрил новый план парковки в центре города. Парковка будет платной с восьми утра до восьми вечера, а жители района получат скидку на годовой абонемент.

## What is in the file

- The rule
- The script
- Close neighbours
- What stays as it is
- Work in this order
- Short example

## Languages

Any language

## How to buy

Agent (HTTP):

1. GET https://api.aiskills402.com/v1/skills/reply-language-lock/file without a payment header. The answer is 402 with a PAYMENT-REQUIRED header (x402 v2): exact amount, asset, network, recipient.
2. Sign `accepts[0]` with an x402 client (for example @x402/core + @x402/evm).
3. Repeat the GET with the signature in the PAYMENT-SIGNATURE header. The answer is 200 with the file, its sha256 and a re-download token.

Agent (MCP): https://mcp.aiskills402.com/mcp — free tools search_skills, get_skill, redownload_skill. Buying itself is over HTTP.

Full flow: https://aiskills402.com/docs

## The file

- Version: 1.0.0
- Size: 6.3 KB (6436 bytes)
- SHA-256: cc87ca79e9dbc7dfb3ab13517ccf277844ac1d85876888893a14db7235bdf215
- Updated: 2026-10-09
- New versions are free through your re-download token.

## Versions

### 1.0.0 (2026-10-09)

First release: keeps an assistant answering in the language of the user's own words, whatever the language of pasted material, logs, code comments or tool output; follows an explicit request for another language and ignores one planted in the material; writes the language in its usual script; keeps code, identifiers, errors and quotations as they are; and lists the letters and words that betray a close neighbour (Russian in Bulgarian or Ukrainian, Czech in Polish, Slovak in Czech, Portuguese and Spanish, Spanish in Italian, Dutch in German). Twenty-four single-turn cases; test/control.mjs proves right answers pass and answers in the material's language or with a neighbour's words fail. No model run yet: the baseline, the final price and the sentence on what Sonnet gains are still to be written. Price 10000 is provisional.

## License

Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Terms: https://aiskills402.com/docs#license

## FAQ

### Replies that drift into another language: where does that come from?

Because the material it works from pulls it along. After a long English log, a Russian forum post or a German document, the next answer often starts in that language, or keeps the user's language but borrows words from a close neighbour. The skill fixes the language from the user's own words in the latest message and treats everything pasted as data, whatever language it is in.

### What about code, error messages and quotations?

They stay exactly as they are, in code formatting or quotation marks, in their original language, and the explanation around them is in the user's language. An error message is never translated inside the quotation; the meaning is explained next to it. A line inside the material that asks for another language is part of the data and changes nothing.

### What if I type my language in Latin letters, or ask for an answer in English?

A Cyrillic language typed in Latin letters because of the keyboard, such as Bulgarian, gets its answer in Cyrillic unless you ask for Latin; Serbian, written in both scripts, is answered in the script you used. An explicit request always wins: ask for an email in English and the email is in English, while anything said to you around it stays in your language.

### Does it help Claude Sonnet?

It fixed three of twenty-four cases. Sonnet and Haiku answered short requests about pasted text in another language, file loaded and not, and code checked the language of each answer. Unaided, Sonnet answered a German user in Dutch, a Portuguese user in Spanish and a Russian user in Bulgarian, following the material; guided, it stayed in the user's language every time. Haiku went from 18 to 21 but still slipped into Bulgarian three times. The price is the owner's choice: an answer in the wrong language is the slip readers notice first.

## Related skills

- [Translate App Text (JSON, YAML, PO)](https://aiskills402.com/skills/translate-app-text.md): $0.01 once
- [Bulgarian Transliteration (Official Latin Spelling)](https://aiskills402.com/skills/bulgarian-transliteration.md): $0.05 once
- [Prompt Injection Guard](https://aiskills402.com/skills/prompt-injection-guard.md): $0.07 once

## Measurement limits

- Models other than the two named above were not run.
- Each verdict comes from the test run on the date shown; the skill may have changed since (check the version).
- Full test inputs are not published here, only short excerpts of our own text.
- Results on your own texts, languages and domains can differ.

Offer note: Paid in USDC (USD-pegged) over x402 by an AI agent; one-time.
