Agent skill

I18n Lang Files

by Mes-Open in Mes-Open/OpenMes

Editing or merging backend/lang/en.json and pl.json. An agent skill from Mes-Open/OpenMes.

AGPL-3.0Auto-check passedFrontend & Design

Install I18n Lang Files

skills CLI
$ npx skills add Mes-Open/OpenMes --skill i18n-lang-files -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Mes-Open/OpenMes i18n-lang-files --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Mes-Open/OpenMes.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/i18n-lang-files .claude/skills/i18n-lang-files && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
i18n-lang-files
GitHub stars
158
Token cost
~1.1k tokens
SKILL.md length
536 words
Files
2
Skills in repo
1
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Editing or merging backend/lang/en.json and pl.json. An agent skill from Mes-Open/OpenMes.

  • Works in 2 steps: Append in one block, at the end, in one… → Sort the files alphabetically, once.…
  • Adding UI strings
  • SKILL.md covers Trailing commas are not an…, Why every merge conflicts, Resolving a conflict and Adding a string, plus 1 more section
  • Runs Python scripts from its folder; calls python3 and git

What it does

I18n Lang Files is an agent skill from Mes-Open/OpenMes. Editing or merging backend/lang/en.json and pl.json. Use when adding UI strings, when a merge conflicts in the lang files, or when deciding where a translation belongs. Covers why these files conflict on every merge and how to resolve one without silently resurrecting a deleted key or breaking en/pl parity.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `resolve-lang-conflict.py`).

It sits in Frontend & Design, covering Internationalization, Git workflow and Translation. It works with Laravel, PHP and Docker. The repository describes itself as: Welcome to the OpenMes repository 👋 This project was shaped through consultations with several manufacturing companies across different industries - if you spot a bug, please…. The licence is AGPL-3.0.

When your agent uses it

  • Adding UI strings
  • A merge conflicts in the lang files
  • Deciding where a translation belongs

Example prompts

  • “/i18n-lang-files”

Requirements

  • Python 3

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Append in one block, at the end, in one commit. Cheap and immediate. It does
  2. Sort the files alphabetically, once. This is the real fix: insertions scatter

What it can do on your machine

Read from SKILL.md and the folder at commit 6048fac. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

I18n Lang Files loads about 1.1k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 536 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~81
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Mes-Open/OpenMes at commit 6048fac, republished under its AGPL-3.0 licence (© Mes-Open). 536 words, ~1,091 tokens.

Download SKILL.mdSave it as .claude/skills/i18n-lang-files/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
i18n-lang-files
description
Editing or merging backend/lang/en.json and pl.json. Use when adding UI strings, when a merge conflicts in the lang files, or when deciding where a translation belongs. Covers why these files conflict on every merge and how to resolve one without silently resurrecting a deleted key or breaking en/pl parity.

Translation files

backend/lang/en.json and backend/lang/pl.json are the app's UI strings, keyed by the English sentence. CLAUDE.md hard rule 2 applies: both files always carry the same key set, and in en.json the value equals the key.

Trailing commas are not an option

The first instinct on seeing these conflicts is "make every line end with a comma so the last line is never special". That cannot work. These are strict .json files read by json_decode; a trailing comma before } is a parse error, and Laravel would fall back to returning every key as its own literal — the entire Polish UI would silently revert to English. There is no punctuation fix. Do not add one, and do not convert these to .jsonc, .php arrays or anything else without a deliberate migration.

Why every merge conflicts

New keys are appended to the end of the file. Every branch that adds a string touches the same final line — the one whose comma has to change — so any two such branches conflict by construction. At the last count, eight open branches were appending to en.json.

Two ways to reduce it, in order of cost:

  1. Append in one block, at the end, in one commit. Cheap and immediate. It does not prevent the conflict but keeps it to a single contiguous hunk that the script below resolves in one shot.
  2. Sort the files alphabetically, once. This is the real fix: insertions scatter through the file instead of piling onto the last line, so most branches stop overlapping at all. The cost is a one-time full-file rewrite that conflicts with every branch currently in flight, so it needs to be scheduled when the branch queue is short — it is a team decision, not something to do mid-feature.
Show full SKILL.md (243 more words)Show less

Resolving a conflict

Never resolve these by hand-editing the <<<<<<< markers, and never take a plain "union of both sides". A text-level union gets two cases wrong:

  • a key deliberately deleted on one side is silently resurrected by the other side still having it (this really happened: PR #239 removed two PAWS keys that a naive union would have put straight back),
  • a key added on both sides ends up duplicated, and json_decode keeps only the last one — so a translation disappears without any error.

Use the script instead. It merges git's three stages per key rather than per line:

bash
# from the repository root, while the merge is conflicted
python3 .claude/skills/i18n-lang-files/resolve-lang-conflict.py --check   # dry run
python3 .claude/skills/i18n-lang-files/resolve-lang-conflict.py           # write
git add backend/lang/*.json

It reports what it did, keeps intentional deletions deleted, checks en/pl parity and duplicate keys, and refuses to guess when both sides changed the same translation's value differently — those it prints for a human to settle.

Adding a string

  • Add the key to both files in the same commit. en.json: value = key.
  • Check it does not already exist — grep -n '"Your string"' backend/lang/en.json before adding, since a near-duplicate wording is worse than a reused key.
  • Placeholders are :name, e.g. "Cancel work order :order?".
  • Strings belonging to an optional module do not go here. A module ships its own namespaced translations (lang/{en,pl}/messages.php + loadTranslationsFrom, referenced as mymodule::messages.key), so core carries no vendor vocabulary. See the Pantheon connector for the pattern.

Verifying

bash
python3 - <<'PY'
import json
en = json.load(open('backend/lang/en.json', encoding='utf-8'))
pl = json.load(open('backend/lang/pl.json', encoding='utf-8'))
print('en', len(en), 'pl', len(pl))
print('missing from pl:', sorted(set(en) - set(pl))[:10])
print('missing from en:', sorted(set(pl) - set(en))[:10])
print('untranslated:', [k for k, v in pl.items() if v == k][:10])
PY

Both files must parse, the key sets must match, and a pl.json value equal to its key means the string was added but never translated.

© Mes-Open, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .claude/skills/i18n-lang-files of Mes-Open/OpenMes.

  • SKILL.md
  • resolve-lang-conflict.py

Open the folder on GitHubat commit 6048fac

Compare with similar skills

I18n Lang Files next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

I18n Lang Files compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
I18n Lang Files this skillMes-Open/OpenMes158—~1.1kAutomated safety check: PassAGPL-3.0
MCP Developmentcoollabsio/coolify63k1 repos~949Automated safety check: PassMIT
Livewire Developmentcoollabsio/coolify63k—~964Automated safety check: PassMIT
Readme I18nY80/bmm3442 repos~1.9kAutomated safety check: PassMIT
Docs I18n TranslateComfy-Org/docs300—~3.2kAutomated safety check: NotesGPL-3.0
Spatie Guidelinesfreekmurze/dotfiles1k—~2.7kAutomated safety check: PassMIT

Similar skills

  • MCP Development

    coollabsio/coolify

    A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 1 repo~949 tokens
    Frontend & DesignAuto-check passed
  • Livewire Development

    coollabsio/coolify

    A skill your agent uses for any task or question involving Livewire.

    63k GitHub stars~964 tokensUpdated today
    Backend & APIsAuto-check passed
  • A skill your agent uses when the user wants to translate a repository README, make a repo multilingual, localize docs, add a language switcher, internationalize the README, or update localized…

    344 GitHub starsUsed in 2 repos~1.9k tokens
    Frontend & DesignAuto-check passed
  • Docs I18n Translate

    Comfy-Org/docs

    Translate ComfyUI Mintlify docs from English MDX to ja/zh/ko using translate-i18n.ts.

    300 GitHub stars~3.2k tokensUpdated today
    Frontend & DesignAuto-check: notes
  • Spatie Guidelines

    freekmurze/dotfiles

    Spatie's PHP, Laravel, JavaScript and Vue coding guidelines and conventions.

    1k GitHub stars~2.7k tokensUpdated 2 days ago
    Backend & APIsAuto-check passed
  • Configuring Horizon

    coollabsio/coolify

    A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.

    63k GitHub starsUsed in 4 repos~898 tokens
    Backend & APIsAuto-check passed

Questions about I18n Lang Files

What does I18n Lang Files do?

Editing or merging backend/lang/en.json and pl.json. An agent skill from Mes-Open/OpenMes. I18n Lang Files is an agent skill from Mes-Open/OpenMes.json.

When should I use I18n Lang Files?

I18n Lang Files fits situations like: adding UI strings; A merge conflicts in the lang files; deciding where a translation belongs.

How do I install I18n Lang Files in Claude Code?

Run `npx skills add Mes-Open/OpenMes --skill i18n-lang-files -a claude-code`. Or copy the skill folder (.claude/skills/i18n-lang-files in Mes-Open/OpenMes) into .claude/skills/i18n-lang-files in your project. Claude Code loads it when a task matches its description.

How do I install I18n Lang Files in Codex?

Run `npx skills add Mes-Open/OpenMes --skill i18n-lang-files -a codex`. Or copy the skill folder (.claude/skills/i18n-lang-files in Mes-Open/OpenMes) into .agents/skills/i18n-lang-files in your project. Codex loads it when a task matches its description.

Can I use I18n Lang Files in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Mes-Open/OpenMes --skill i18n-lang-files -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/i18n-lang-files, .gemini/skills/i18n-lang-files, .github/skills/i18n-lang-files and .opencode/skills/i18n-lang-files in your project.

What does I18n Lang Files need to run?

Going by SKILL.md and its folder, I18n Lang Files needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and git). Our summary lists: Python 3.

Does I18n Lang Files access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is I18n Lang Files safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does I18n Lang Files use?

I18n Lang Files is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does I18n Lang Files use?

About 1.1k tokens (SKILL.md is roughly 4.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to I18n Lang Files?

Skills that share tags, products or a category with I18n Lang Files: MCP Development (coollabsio/coolify, 63k stars), Livewire Development (coollabsio/coolify, 63k stars), Readme I18n (Y80/bmm, 344 stars) and Docs I18n Translate (Comfy-Org/docs, 300 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains I18n Lang Files?

Mes-Open (a GitHub organization) maintains it in Mes-Open/OpenMes, which has 158 GitHub stars. The repository was last updated on October 9, 2026.

Source: Mes-Open/OpenMes on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.