Back to the catalog

io.github.rog0x/i18n

Locale detect, translations, plurals for AI agents

Open source Open in the app JSON README (API)

About

Locale detect, translations, plurals for AI agents

Details

Kind
MCP servers
Topic
No topic detected
Publisher
rog0x
Origin
official
Category
ferramentas
Transport
local
Version
1.0.2
Last push
2026-03-21T20:21:57Z
Repository state
ativo
Language
TypeScript
License
NOASSERTION
Added
2026-08-29 04:01:19
Updated
2026-08-29 04:01:19
Origin id
io.github.rog0x/i18n

README

# @rog0x/mcp-i18n-tools

Internationalization and localization tools for AI agents, exposed as an MCP (Model Context Protocol) server.

## Tools

### detect_locale

Detect the language and locale of a given text string. Returns the detected language code (BCP 47), language name, writing script, confidence score (0-1), and alternate language candidates.

**Supported languages:** English, Spanish, French, German, Portuguese, Italian, Russian, Japanese, Korean, Chinese, Arabic, Hindi, Thai, Greek, Hebrew.

### extract_i18n_keys

Extract hardcoded user-facing strings from source code that should be internationalized. Finds strings in:

- JSX/TSX attributes (`title`, `placeholder`, `label`, `alt`, `aria-label`, etc.)
- HTML template text and attributes
- `console.log` / `console.warn` / `console.error` calls
- `throw new Error(...)` messages
- `alert()` / `confirm()` / `prompt()` dialogs
- Variable assignments with i18n-relevant names (`message`, `label`, `title`, etc.)

Returns each string with its line/column, surrounding context, pattern type, and a suggested i18n key.

### analyze_translations

Analyze translation JSON files for consistency across locales. Detects:

- **Missing keys** — present in reference locale but absent in others
- **Extra keys** — present in a locale but not in the reference
- **Structure mismatches** — a key is a string in one locale but an object in another
- **Interpolation mismatches** — `{variable}` placeholders differ between locales
- **Empty values** — keys with blank translations
- **Unused keys** — keys not referenced in source code (requires a list of used keys)

### plural_rules

Generate plural form categories for a given locale following CLDR rules. Shows which plural categories the language uses and classifies any test numbers you provide.

| Language   | Categories                          |
| ---------- | ----------------------------------- |
| English    | one, other                          |
| French     | one, other                          |
| Russian    | one, few, many, other               |
| Arabic     | zero, one, two, few, many, other    |
| Polish     | one, few, many, other               |
| Japanese   | other                               |
| Chinese    | other                               |

### format_locale

Format numbers, currencies, dates, and relative times for any locale using the `Intl` APIs. Supports:

- **Numbers** — decimal, percent, unit; compact/scientific/engineering notation
- **Currency** — symbol, narrowSymbol, code, and name displays
- **Dates** — short, medium, long, full styles with date parts breakdown
- **Relative time** — long, short, narrow styles with auto-numeric formatting

## Setup

```bash
npm install
npm run build
```

## MCP Configuration

```json
{
  "mcpServers": {
    "i18n-tools": {
      "command": "node",
      "args": ["D:/products/mcp-servers/mcp-i18n-tools/dist/index.js"]
    }
  }
}
```

## License

MIT

More