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