i18n

i18n is an agent for coding agents from windviki/vBookmarks. It costs 0 tokens per session (1,211 once invoked), scanned A, original, MIT.

A project guide for managing translations across multiple language files. It uses one Python script to find missing or unused translation keys, translate pending entries, and check file consistency.

In plain words
What is it for?
Use it when adding or changing interface text, auditing translations, translating a locale, or verifying that all language files match the English baseline.
Why use it?
It helps prevent languages from falling out of sync and catches missing keys, unfinished translations, broken placeholders, and formatting differences before changes are merged.

Agent

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/windviki/vbookmarks/i18n
Clone the repo
git clone --depth 1 https://github.com/windviki/vBookmarks

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for i18n

README.md
[![agentmods](https://agentmods.dev/badge/agents/windviki/vbookmarks/i18n.svg)](https://agentmods.dev/agents/windviki/vbookmarks/i18n)
Your own site
<a href="https://agentmods.dev/agents/windviki/vbookmarks/i18n"><img src="https://agentmods.dev/badge/agents/windviki/vbookmarks/i18n.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,211 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.01211
Opus 5 $0.00000 $0.00606
Sonnet 5 $0.00000 $0.00242
Haiku 4.5 $0.00000 $0.00121

Measured 4d ago against content hash 9e8ddbd7074c, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

i18n scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

docs/agents/i18n.md · 29 lines

How it starts

The opening of the file, as written. The whole thing — 29 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Locale Management (detail)

Extracted verbatim from AGENTS.md — the detailed half of "Locale management". AGENTS.md keeps the commands and the add/modify-key rules.

scripts/i18n.py (stdlib only) is the single entry point — the older sync_locales.py / check_translations.py are retired:

python3 scripts/i18n.py audit                 # scan all _m()/__MSG_*__ references vs en definitions (undefined/unused keys)
python3 scripts/i18n.py missing               # per-locale report vs en baseline: missing / [TODO] / suspect-equal-to-en
python3 scripts/i18n.py translate --locale fr --apply   # LLM-translate a locale's pending keys, write back in key order
python3 scripts/i18n.py verify                # gate: key-set alignment + no [TODO] + $placeholder$ integrity + menu-length warnings

文件格式契约(2026-08-26 起强制)

每个 _locales/<lang>/messages.json 必须满足:key 字母序2 空格缩进、 UTF-8 明文、文件末尾换行。43 个 locale 共用同一排序(以 en 为基准, sort_keys=True 的字典序)——新增/修改 key 一律按字母序插入到正确位置, 禁止追加到文件尾部(旧做法导致各语种 key 序随插入历史漂移,diff 不可读、 合并冲突频繁)。translate --applyverify 均保持该顺序;手工编辑后 用 json.dump(d, f, ensure_ascii=False, indent=2, sort_keys=True) 归一化核对 (或运行 python3 scripts/i18n.py verify + git diff 目检)再提交。CI 的 i18n.py missing / verify 门禁只查键集与占位符完整性,不查排序——排序 靠本契约人工把关。

Key 增改流程

All 43 locales currently hold the same 685 keys as the en baseline — keys without a real translation carry [TODO:key] placeholder messages. When adding keys: translate en + zh_CN for real, insert [TODO:key] placeholders in place (right after their en neighbor) into the other locales — do NOT reorder keys — then check with python3 scripts/i18n.py missing. When modifying the text of an existing key the same sync is required — update en + zh_CN for real, then force re-translation in the other locales by overwriting the key's message with the [TODO:key] placeholder in each of them (already-translated text is invisible to translate: it only fills missing/[TODO:] keys, so a stale-but-translated key would silently keep its old wording) — then run the same translate --apply + verify flow below. TODO placeholders are only an intermediate state, never a deliverable one: before every commit/packaging run python3 scripts/i18n.py translate --apply to fill them (LLM endpoint from the git-ignored .env), and the release gate is python3 scripts/i18n.py verify at 0 errors — do not treat a verify failure caused by leftover [TODO:] as expected, and do not mistake audit (code-reference check, blind to translation state) for this gate. translate fills every pending key of a locale in one batched run (40 keys/request) against a chat LLM — configure via env or a git-ignored repo-root .env: VBM_LLM_API_KEY required, VBM_LLM_BASE_URL (default https://api.moonshot.cn/v1), VBM_LLM_MODEL (default kimi-k2-0905-preview) and VBM_LLM_API_TYPE (openai default, or anthropic_messages for Anthropic-style endpoints like DeepSeek's) optional. The built-in Chinese prompt explains the bookmark-manager context and per-category constraints. 2026-08-28 审阅轮细化:prompt 现携带 (a) 术语表 —— STAGING_TERMS(staging 在每个语言的定案译法,人工维护,新增/改译法时同步那处 dict)与 tab group/separator/bookmark 的术语律;(b) 输出语言断言(严禁第三语言混入);(c) 同批一致性要求;(d) 大小写规则(非英语句式大小写,禁 Title Case);(e) zh_TW/zh_HK 字形叮嘱SCRIPT_NOTES,严禁简体字形与大陆用语);(f) 菜单字符预算前移——menu 类条目带 budget 字段(35 拉丁 / 18 CJK),首译即达标。dry-run is the default, --apply writes back preserving each file's key order and placeholders structure. verify adds two machine checks from the same round: 串语检测(非 CJK 语系译文含汉字即 ERROR)与简繁检测(zh_TW/zh_HK 含简体专属字形即 ERROR),plus the menu-length warnings (now clean at 0) with --fix for LLM shortening.

Read the full file on GitHub · 29 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 29 lines · 0 tokens per session scan A 9e8ddbd7074c

Subscribe to this mod's changes

i18n is an agent published in the GitHub repository windviki/vBookmarks (135 stars, last pushed today), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,211 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

compliance-mapper

Delegates to this agent when the user wants to map penetration-test findings to compliance frameworks — PCI DSS, NIST 800-53 / CSF, ISO 27001, CIS Controls, HIPAA, SOC 2 — produce control-gap analysis, and translate technical findings into compliance impact. Distinct from stig-analyst (STIG hardening) and…

0xSteph/pentest-ai-agents · 84 tokens

product-lead

Use this agent when you need to translate user ideas or feature requests into actionable product requirements. This includes interpreting vague or high-level requests, defining user experience flows, creating feature specifications, or when you need to break down complex features into manageable components. The agent…

openstory-so/openstory · 0 tokens

frontend-engineer

Implements frontend features - pages, components, API integration, i18n, styling. Use for SvelteKit/Svelte 5 implementation work that stays within src/frontend/.

fpindej/netrock · 39 tokens

i18n

你是一个精通 Vue3 国际化架构的前端专家(专注于 Vue3 + TypeScript + Composition API)。同时,你也是一位专业的 UI/UX 翻译专家,擅长将中文界面语言翻译为地道、简洁的英文。.

zhimaAi/chatwiki · 7 tokens

localization-engineer

Internationalization (i18n) and localization (L10n) specialist for multi-language support and cultural adaptation.

Omar-Obando/qwen-orchestrator · 28 tokens

conventions

numeral in the nominative; the head noun does not govern the measurement.

NickZaitsev/ru-normalizr · 0 tokens