
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
multilingual-cli
Advanced tools
Multilingual - Automated i18n with FREE translation options. 6 translation services (4 free, 2 paid), 37 languages, multiple export formats, watch mode, translation memory.
Automated i18n with FREE translation options — 15+ translation methods (12 free!), 37 languages, offline mode, multiple export formats, and more.
# Install globally
npm install -g multilingual-cli
# Initialize in your project
multilingual init
# Or use directly with npx
npx multilingual-cli init
| Service | Description | Limit |
|---|---|---|
| MyMemory | Crowd-sourced + machine translation (recommended) | 10k chars/day (100k with email) |
| LibreTranslate | Open source, self-hostable | Unlimited |
| Lingva | Privacy-focused (may be blocked by Cloudflare) | Unlimited |
| Service | Description | Use Case |
|---|---|---|
| Dictionary | Built-in dictionaries for 10 languages | Quick translations, no API |
| Local | Use your own JSON translation files | Custom terminology |
| Service | Description | Example |
|---|---|---|
| Pseudo | Fake translations with accents | [Ḥḛŀŀő Ẇőřŀḓ~~~] |
| Piglatin | Classic word game | ellohay orldway |
| Emoji | Words → emojis | 👋 🌍 |
| Leet | L33t sp34k | h3ll0 w0rld |
| Reverse | Reversed text | dlrow olleh |
| Mirror | Unicode mirror chars | ꓭ⅃ꓤOW O⅃⅃ƎH |
| Morse | Morse code | .... . .-.. .-.. --- |
| NATO | NATO phonetic alphabet | Hotel Echo Lima Lima Oscar |
| Uppercase | ALL CAPS | HELLO WORLD |
| Service | Description | Free Tier |
|---|---|---|
| DeepL | High quality neural translation | 500k chars/month |
| Wide language support | 500k chars/month |
# Use free Lingva (recommended, no API key needed!)
multilingual translate-file -s en.json -o ./locales --service lingva
# Use offline dictionary (no internet required!)
multilingual translate-file -s en.json -o ./locales --service dictionary
# Fun: translate to Pig Latin
multilingual translate-file -s en.json -o ./locales --service piglatin
# View all service options
multilingual services
multilingual init # Interactive setup wizard
multilingual run # Scan & translate project
multilingual scan # Scan only, show strings
multilingual translate-file # Translate existing JSON file
# Export to XLIFF for translation tools
multilingual export -i en.json -o translations.xliff -f xliff
# Import translated XLIFF
multilingual import -i translated.xliff -o fr.json
# Supported formats: xliff, xliff2, po, csv, android, ios, arb
multilingual watch # Auto-translate on file changes
multilingual pseudo -s en.json # Generate pseudo-translations
multilingual stats # View statistics & cost estimates
multilingual config --show # View current config
multilingual config --edit # Interactive config editor
multilingual config --set key=value
multilingual services # List all translation services
multilingual languages # List all 37 supported languages
| 🇺🇸 English | 🇪🇸 Spanish | 🇫🇷 French | 🇩🇪 German |
| 🇮🇹 Italian | 🇵🇹 Portuguese | 🇧🇷 Portuguese (BR) | 🇷🇺 Russian |
| 🇨🇳 Chinese (Simplified) | 🇹🇼 Chinese (Traditional) | 🇯🇵 Japanese | 🇰🇷 Korean |
| 🇸🇦 Arabic (RTL) | 🇮🇳 Hindi | 🇳🇱 Dutch | 🇵🇱 Polish |
| 🇸🇪 Swedish | 🇩🇰 Danish | 🇫🇮 Finnish | 🇳🇴 Norwegian |
| 🇹🇷 Turkish | 🇨🇿 Czech | 🇬🇷 Greek | 🇮🇱 Hebrew (RTL) |
| 🇭🇺 Hungarian | 🇮🇩 Indonesian | 🇲🇾 Malay | 🇹🇭 Thai |
| 🇻🇳 Vietnamese | 🇺🇦 Ukrainian | 🇧🇬 Bulgarian | 🇷🇴 Romanian |
| 🇸🇰 Slovak | 🇸🇮 Slovenian | 🇪🇪 Estonian | 🇱🇻 Latvian |
| 🇱🇹 Lithuanian |
| Format | Extension | Use Case |
|---|---|---|
| JSON | .json | Web apps, Node.js |
| XLIFF 1.2 | .xliff | Translation tools (SDL, Trados) |
| XLIFF 2.0 | .xliff | Modern CAT tools |
| PO/gettext | .po | Linux, WordPress, Python |
| CSV | .csv | Spreadsheets, bulk editing |
| Android | strings.xml | Android apps |
| iOS | .strings | iOS/macOS apps |
| ARB | .arb | Flutter apps |
# Convert JSON to XLIFF for professional translators
multilingual export -i en.json -o translations.xliff -f xliff
# Import back from translated XLIFF
multilingual import -i es.xliff -o es.json
Test your UI's i18n readiness with fake translations:
# Generate pseudo-translations
multilingual pseudo -s en.json -o pseudo.json
Before: "Hello World"
After: "[Ḥḛŀŀő Ẇőřŀḓ~~~]"
This helps you:
multilingual stats --report
╔══════════════════════════════════════════════════════════════╗
║ Translation Statistics Report ║
╠══════════════════════════════════════════════════════════════╣
📊 SUMMARY
──────────────────────────────────────────────────────────────
Total strings: 245
Total words: 1,847
Total characters: 12,456
Overall coverage: 78.3%
🌍 LANGUAGE COVERAGE
──────────────────────────────────────────────────────────────
✅ Spanish [████████████████████] 100.0%
🔄 French [██████████████░░░░░░] 72.3%
⏳ German [████░░░░░░░░░░░░░░░░] 23.1%
💰 COST ESTIMATES
──────────────────────────────────────────────────────────────
DeepL Free tier: ~0.4 months of quota
Google Free tier: ~0.4 months of quota
✅ Within free tier limits for both services
multilingual github --setup
Automatically translate on every push:
# .github/workflows/translate.yml
name: Auto-translate
on:
push:
paths:
- 'src/**'
- 'locales/en.json'
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm install -g multilingual-cli
- run: multilingual run --auto
env:
TRANSLATION_API_KEY: ${{ secrets.TRANSLATION_API_KEY }}
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'chore: update translations'
import Multilingual, {
TranslationManager,
calculateStats,
exportToFile,
XLIFFFormat
} from 'multilingual-cli';
// Basic usage
const ml = new Multilingual({
config: {
sourceLanguage: 'en',
targetLanguages: ['es', 'fr', 'de'],
translationService: 'none', // Use free service instead
}
});
// Use free translation service
const manager = new TranslationManager();
manager.setExtendedService('libretranslate'); // No API key needed!
const result = await manager.translate('Hello World', 'es', 'en');
console.log(result.text); // "Hola Mundo"
// Pseudo-translation for testing
const pseudo = manager.generatePseudoTranslation('Hello World');
console.log(pseudo); // "[Ḥḛŀŀő Ẇőřŀḓ~~~]"
// Export to XLIFF
const doc = {
sourceLanguage: 'en',
targetLanguage: 'es',
units: [
{ key: 'greeting', source: 'Hello', target: 'Hola' },
{ key: 'farewell', source: 'Goodbye', target: 'Adiós' },
]
};
const xliff = XLIFFFormat.export(doc);
API keys are never exposed:
AIza****...****V8Isd3A).env.example template included# Use environment variable
export TRANSLATION_API_KEY="your-key-here"
multilingual run --auto
your-project/
├── locales/
│ ├── en.json # Source language
│ ├── es.json # Auto-generated
│ ├── fr.json # Auto-generated
│ └── ...
├── .multilingual/
│ ├── translation-memory.json # Reusable translations
│ └── reports/ # Statistics reports
├── multilingual.config.json # Configuration
└── .env # API keys (git-ignored)
Contributions are welcome! Please read our contributing guidelines first.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT License — see LICENSE for details.
Attribution Required: Generated translation files must retain the multilingual-cli attribution comments.
Built with ❤️ by developers, for developers
FAQs
Multilingual - Automated i18n with FREE translation options. 6 translation services (4 free, 2 paid), 37 languages, multiple export formats, watch mode, translation memory.
We found that multilingual-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.