๐ŸŽ Get the FREE AI Skills Starter Guide โ€” Subscribe โ†’
BytesAgainBytesAgain
๐Ÿฆ€ ClawHub

Cuihua i18n Helper

by @supermario11

๐ŸŒ AI-powered internationalization (i18n) assistant for modern web applications. Automatically extract translatable strings, generate locale files, batch tra...

Versionv1.0.0
Downloads438
TERMINAL
clawhub install cuihua-i18n-helper

๐Ÿ“– About This Skill


name: cuihua-i18n-helper description: | ๐ŸŒ AI-powered internationalization (i18n) assistant for modern web applications. Automatically extract translatable strings, generate locale files, batch translate to 100+ languages, and maintain translation quality across your entire codebase. Built for developers who ship global products.

metadata: openclaw: requires: bins: - node env: [] primaryEnv: null version: "1.0.0" author: "็ฟ ่Šฑ (Cuihua) - ClawHub Pioneer" license: "MIT" tags: - i18n - internationalization - translation - localization - react - vue - nextjs - multilingual capabilities: - Automatic string extraction from code - Smart translation key generation - Batch translation (DeepL, Google Translate, OpenAI) - Translation quality checks - Missing translation detection - Unused translation cleanup - Framework support (React, Vue, Angular, Next.js, Nuxt.js) - CI/CD integration


cuihua-i18n-helper - AI i18n Assistant ๐ŸŒ

> Ship global products faster with AI-powered internationalization.

An intelligent i18n assistant that automates the tedious parts of internationalization:

  • ๐Ÿ” Auto-extract translatable strings from your code
  • ๐Ÿค– AI-translate to 100+ languages in seconds
  • โœ… Quality checks for consistency and completeness
  • ๐Ÿ“Š Reports on translation coverage and health
  • ๐Ÿ”„ Sync translations across multiple frameworks
  • ๐ŸŽฏ Why cuihua-i18n-helper?

    Traditional i18n workflow is painful: 1. โŒ Manually find all hardcoded strings 2. โŒ Manually create translation keys 3. โŒ Manually copy to each locale file 4. โŒ Manually send to translators 5. โŒ Manually track what's missing 6. โŒ Manually clean up unused translations

    cuihua-i18n-helper automates ALL of this.


    ๐Ÿš€ Quick Start

    Extract translatable strings

    Tell your OpenClaw agent: > "Extract all translatable strings from src/"

    The agent will:

  • Find all hardcoded UI text
  • Generate semantic translation keys
  • Create locale files for your languages
  • Show translation coverage report
  • Translate to multiple languages

    > "Translate to Chinese, Japanese, and Spanish"

    The agent will:

  • Batch translate all strings
  • Preserve formatting and placeholders
  • Check translation quality
  • Report any issues
  • Check translation health

    > "Check for missing translations"

    The agent will:

  • Find missing translations
  • Find unused translation keys
  • Check for consistency issues
  • Generate actionable report

  • ๐ŸŽจ Features

    1. Smart String Extraction ๐Ÿ”

    Automatically detects translatable content:

    // Before
    
    

    Hello, {username}!

    // After extraction

    {t('greeting.hello', { username })}

    Supports:

  • JSX/TSX (React)
  • Vue templates
  • Angular templates
  • Plain JavaScript strings
  • Template literals with variables
  • 2. Intelligent Key Generation ๐Ÿง 

    Creates semantic, readable translation keys:

    {
      "button": {
        "submit": "Submit",
        "cancel": "Cancel",
        "save": "Save"
      },
      "greeting": {
        "hello": "Hello, {{username}}!",
        "welcome": "Welcome back"
      },
      "form": {
        "email_placeholder": "Enter email",
        "password_placeholder": "Enter password"
      }
    }
    

    Smart features:

  • Context-aware naming
  • Namespace organization
  • Collision prevention
  • Consistent naming conventions
  • 3. Batch Translation ๐ŸŒ

    Translate to 100+ languages instantly:

    Supported providers:

  • โœ… DeepL (best quality)
  • โœ… Google Translate (fast, free tier)
  • โœ… OpenAI GPT (context-aware)
  • โœ… Azure Translator
  • โœ… LibreTranslate (self-hosted)
  • Smart translation:

  • Preserves placeholders: {{count}}, {username}
  • Handles HTML tags: Bold
  • Keeps special characters: ยฉ ยฎ โ„ข
  • Context-aware translations
  • Example output:

    // en.json
    {
      "user": {
        "greeting": "Hello, {{name}}!",
        "items_count": "You have {{count}} items"
      }
    }

    // zh.json (Chinese) { "user": { "greeting": "ไฝ ๅฅฝ๏ผŒ{{name}}๏ผ", "items_count": "ไฝ ๆœ‰ {{count}} ไธช็‰ฉๅ“" } }

    // ja.json (Japanese) { "user": { "greeting": "ใ“ใ‚“ใซใกใฏใ€{{name}}ใ•ใ‚“๏ผ", "items_count": "{{count}}ๅ€‹ใฎใ‚ขใ‚คใƒ†ใƒ ใŒใ‚ใ‚Šใพใ™" } }

    4. Translation Quality Checks โœ…

    Automated quality assurance:

    Checks:

  • โœ… Missing translations
  • โœ… Placeholder mismatches
  • โœ… Inconsistent terminology
  • โœ… Excessive string length
  • โœ… Untranslated strings (still in source language)
  • โœ… HTML tag mismatches
  • โœ… Special character issues
  • Example report:

    ๐Ÿ” Translation Quality Report
    โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

    ๐Ÿ“Š Coverage: 95% (190/200 strings)

    โš ๏ธ Issues Found: 5

    1. Missing translations (zh.json): - user.profile_updated - error.network_timeout

    2. Placeholder mismatch (ja.json): - user.items_count Expected: {{count}} Found: {count}

    3. Excessive length (de.json): - button.submit_and_continue English: 21 chars German: 45 chars (214% longer)

    ๐Ÿ’ก Run with --fix to auto-fix common issues

    5. Framework Integration ๐Ÿ”ง

    Works seamlessly with popular frameworks:

    React / Next.js:

    import { useTranslation } from 'react-i18next';

    function MyComponent() { const { t } = useTranslation(); return

    {t('welcome.title')}

    ; }

    Vue / Nuxt.js:

    
    

    Angular:

    {{ 'welcome.title' | translate }}

    Vanilla JS:

    import i18n from './i18n';
    document.getElementById('title').textContent = i18n.t('welcome.title');
    

    6. CI/CD Integration ๐Ÿ”„

    Automate translation checks in your pipeline:

    # .github/workflows/i18n.yml
    name: i18n Check

    on: [pull_request]

    jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Check i18n run: | openclaw agent run "Check for missing translations" openclaw agent run "Verify translation quality"

    Pre-commit hook:

    #!/bin/bash
    

    .git/hooks/pre-commit

    echo "๐Ÿ” Checking i18n..." openclaw agent run "Check for untranslated strings in staged files"

    if [ $? -ne 0 ]; then echo "โŒ Found untranslated strings. Please add translations." exit 1 fi


    ๐Ÿ“‹ Usage Examples

    Example 1: New Project Setup

    User: "Set up i18n for my React project with English and Chinese"

    Agent:

    โœ… i18n setup complete:

    ๐Ÿ“ฆ Installed dependencies: - react-i18next - i18next

    ๐Ÿ“ Created structure: src/ i18n/ index.js (config) locales/ en.json zh.json

    โš™๏ธ Configured: - Default language: en - Fallback language: en - Supported languages: en, zh

    ๐Ÿ’ก Next steps: 1. Import i18n in your root component 2. Wrap app with I18nextProvider 3. Use {t('key')} in components

    Example 2: Extract from Existing Code

    User: "Extract all translatable strings from src/components/"

    Agent:

    ๐Ÿ” Scanning src/components/...

    โœ… Found 42 translatable strings: - Button labels: 12 - Form placeholders: 8 - Error messages: 7 - Page titles: 6 - Tooltips: 5 - Other: 4

    ๐Ÿ“ Generated locale files: locales/en.json (42 keys) locales/zh.json (42 keys, auto-translated)

    ๐Ÿ”„ Updated components: - src/components/Button.jsx (3 strings) - src/components/Form.jsx (8 strings) - src/components/Header.jsx (2 strings) ...

    ๐Ÿ“Š Coverage: 100%

    ๐Ÿ’ก Review translations in locales/ folder

    Example 3: Add New Language

    User: "Add German and French translations"

    Agent:

    ๐ŸŒ Adding languages: de (German), fr (French)

    ๐Ÿค– Translating 42 strings... [โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ] 100%

    โœ… Created locale files: locales/de.json (42 keys) locales/fr.json (42 keys)

    โš ๏ธ Review recommended for: - Technical terms (3 strings) - Brand names (1 string) - Colloquial expressions (2 strings)

    ๐Ÿ“Š Translation provider: DeepL ๐Ÿ“Š Cost: $0.02 (42 strings ร— 2 languages)

    ๐Ÿ’ก Preview: http://localhost:3000?lng=de

    Example 4: Find Missing Translations

    User: "Check for missing translations"

    Agent:

    ๐Ÿ” Checking translation completeness...

    ๐Ÿ“Š Coverage by language: โœ… en: 100% (50/50) โœ… zh: 100% (50/50) โš ๏ธ ja: 94% (47/50) โš ๏ธ de: 88% (44/50) โŒ fr: 76% (38/50)

    โŒ Missing in ja.json (3): - user.profile_updated - error.network_timeout - settings.privacy_policy

    โŒ Missing in de.json (6): - user.profile_updated - user.account_deleted - error.network_timeout - error.server_error - settings.privacy_policy - settings.terms_of_service

    โŒ Missing in fr.json (12): [... list truncated ...]

    ๐Ÿ’ก Fix: openclaw agent run "Translate missing strings to all languages"

    Example 5: Clean Up Unused Translations

    User: "Remove unused translation keys"

    Agent:

    ๐Ÿ” Scanning codebase for used translation keys...

    ๐Ÿ“Š Analysis: Total keys: 50 Used keys: 45 Unused keys: 5

    ๐Ÿ—‘๏ธ Unused keys found: - old.deprecated_feature (last used: 6 months ago) - temp.debug_message (never used) - test.sample_text (test artifact) - button.old_submit (replaced by button.submit) - error.obsolete_error (feature removed)

    โ“ Remove these keys? (y/n)

    User: "Yes"

    โœ… Removed 5 unused keys from all locale files

    ๐Ÿ“ Updated files: - locales/en.json (-5 keys) - locales/zh.json (-5 keys) - locales/ja.json (-5 keys) - locales/de.json (-5 keys) - locales/fr.json (-5 keys)

    ๐Ÿ’พ Backup created: locales/.backup-2026-03-24/

    Example 6: Translation Review Workflow

    User: "Mark translations needing review"

    Agent:

    ๐Ÿ” Analyzing translations for review...

    โš ๏ธ Flagged for review (8 strings):

    1. user.welcome_premium Translation seems too literal Suggestion: Use more natural phrasing

    2. error.payment_failed (zh) Contains English words: "payment" Suggestion: Translate to "ๆ”ฏไป˜"

    3. button.purchase_now (de) Too long for button (28 characters) Suggestion: Shorten to "Jetzt kaufen"

    ๐Ÿ“ Created review.md with details

    ๐Ÿ’ก Next: Share review.md with translators


    โš™๏ธ Configuration

    Create .i18nrc.json in your project root:

    {
      "sourceLanguage": "en",
      "targetLanguages": ["zh", "ja", "de", "fr", "es"],
      "localesPath": "./src/locales",
      "extractFrom": ["./src"],
      "ignore": ["/*.test.js", "/*.spec.js"],
      "translationProvider": "deepl",
      "keyStyle": "nested",
      "keyCase": "snake_case",
      "placeholderPattern": "{{%s}}",
      "qualityChecks": {
        "checkMissingTranslations": true,
        "checkPlaceholders": true,
        "checkLength": true,
        "maxLengthRatio": 2.0
      }
    }
    


    ๐ŸŒ Supported Languages

    100+ languages including:

    Popular:

  • ๐Ÿ‡จ๐Ÿ‡ณ Chinese (Simplified, Traditional)
  • ๐Ÿ‡ฏ๐Ÿ‡ต Japanese
  • ๐Ÿ‡ฐ๐Ÿ‡ท Korean
  • ๐Ÿ‡ฉ๐Ÿ‡ช German
  • ๐Ÿ‡ซ๐Ÿ‡ท French
  • ๐Ÿ‡ช๐Ÿ‡ธ Spanish
  • ๐Ÿ‡ฎ๐Ÿ‡น Italian
  • ๐Ÿ‡ท๐Ÿ‡บ Russian
  • ๐Ÿ‡ต๐Ÿ‡น Portuguese
  • ๐Ÿ‡ฆ๐Ÿ‡ช Arabic
  • And many more: Dutch, Swedish, Danish, Polish, Turkish, Thai, Vietnamese, Indonesian, Hindi, Hebrew, Greek, Czech, Romanian, Hungarian, Finnish, Norwegian, Ukrainian, and more!


    ๐Ÿ’ฐ Pricing

    Free Tier

  • โœ… Extract up to 100 strings
  • โœ… 2 target languages
  • โœ… Basic quality checks
  • โœ… Google Translate only
  • Pro ($12/month)

  • โœ… Unlimited extraction
  • โœ… Unlimited languages
  • โœ… All translation providers
  • โœ… Advanced quality checks
  • โœ… CI/CD integration
  • โœ… Priority support
  • Enterprise ($99/month)

  • โœ… Everything in Pro
  • โœ… Team collaboration
  • โœ… Translation memory
  • โœ… Custom translation engines
  • โœ… On-premise deployment
  • โœ… SLA support

  • ๐Ÿ”’ Privacy & Security

  • โœ… Local processing - Extraction happens locally
  • โœ… Secure API calls - Encrypted communication with translation providers
  • โœ… No data retention - Translations not stored on our servers
  • โœ… Self-hosted option - Use LibreTranslate for complete privacy

  • ๐Ÿค Integration

    Translation Providers

    DeepL (Recommended):

    export DEEPL_API_KEY=your_api_key
    

    Google Translate:

    export GOOGLE_TRANSLATE_API_KEY=your_api_key
    

    OpenAI:

    export OPENAI_API_KEY=your_api_key
    

    i18n Libraries

    react-i18next:

    npm install react-i18next i18next
    

    vue-i18n:

    npm install vue-i18n
    

    angular-translate:

    npm install @ngx-translate/core
    


    ๐Ÿ“š Resources

  • ๐Ÿ“– Full Documentation
  • ๐ŸŽ“ Video Tutorials
  • ๐Ÿ’ฌ Discord Community
  • ๐Ÿ› Report Issues

  • ๐Ÿ“œ License

    MIT License - see LICENSE for details.


    ๐Ÿ™ Acknowledgments

    Built with ๐ŸŒธ by ็ฟ ่Šฑ (Cuihua) for the OpenClaw community.

    Special thanks to:

  • OpenClaw team for the amazing framework
  • i18next, vue-i18n, and other i18n library maintainers
  • Translation API providers
  • Early adopters and contributors

  • Made with ๐ŸŒธ | Cuihua Series | ClawHub Pioneer

    _Ship global products faster with AI-powered i18n._