← 返回 Skills 市场
supermario11

Cuihua i18n Helper

作者 supermario11 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
108
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install cuihua-i18n-helper
功能描述
🌍 AI-powered internationalization (i18n) assistant for modern web applications. Automatically extract translatable strings, generate locale files, batch tra...
使用说明 (SKILL.md)

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
\x3Cbutton>Submit\x3C/button>
\x3Cp>Hello, {username}!\x3C/p>
\x3Cinput placeholder="Enter email" />

// After extraction
\x3Cbutton>{t('button.submit')}\x3C/button>
\x3Cp>{t('greeting.hello', { username })}\x3C/p>
\x3Cinput placeholder={t('form.email_placeholder')} />

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: \x3Cstrong>Bold\x3C/strong>
  • 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 \x3Ch1>{t('welcome.title')}\x3C/h1>;
}

Vue / Nuxt.js:

\x3Ctemplate>
  \x3Ch1>{{ $t('welcome.title') }}\x3C/h1>
\x3C/template>

Angular:

\x3Ch1>{{ 'welcome.title' | translate }}\x3C/h1>

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


📜 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.

安全使用建议
This skill appears to do what it says — extract strings and manage locale files — but review a few things before you run it on a real repo: - Credentials: The documentation says it supports DeepL/Google/OpenAI/Azure, but the skill metadata declares no API keys. Expect the tool to ask you for provider keys at runtime or to attempt network calls; do not paste secrets into prompts without verifying where they are stored/used. - File writes: The tool will read your source tree and write/update locales/*.json and can auto-fix code. Run it first on a copy or in a branch so you can review changes. - Network behavior: Inspect the rest of i18n-helper.js (the truncated portion) for any outbound network calls or hard-coded endpoints before giving it network access. If it tries to call translation APIs, ensure you provide credentials via safe environment variables and not in a chat. - Least privilege: If you only need extraction, avoid enabling automatic translation or --fix until you confirm behavior. Prefer local/self-hosted providers (LibreTranslate) if you want to avoid sending strings to third-party services. What would change this assessment: seeing explicit code that contacts translation provider endpoints and where it expects API keys (or evidence that no provider integration exists). If the script includes clear, well-documented environment variable names for provider credentials and instructions on secure usage, the proportionality concern would be reduced.
功能分析
Type: OpenClaw Skill Name: cuihua-i18n-helper Version: 1.0.0 The skill bundle is a legitimate internationalization (i18n) utility designed to extract strings from source code and manage translation files. The core logic in `i18n-helper.js` uses standard Node.js file system modules to scan directories and process JSX/Vue/HTML files via regular expressions, with no evidence of malicious execution, data exfiltration, or unauthorized network activity. The instructions in `SKILL.md` are well-aligned with the tool's stated purpose and do not contain any prompt-injection attacks or attempts to subvert the agent's behavior.
能力评估
Purpose & Capability
Name/description and included code are coherent with an i18n extraction/locale-management tool (Node script, React/Vue extraction patterns, locale files). However the SKILL.md advertises batch translation via DeepL, Google, OpenAI, Azure and LibreTranslate but the skill declares no required environment variables or primary credential. Real provider integrations normally require API keys/endpoint config, so either the code expects you to supply keys at runtime (not declared) or the translation step may rely on the agent's own LLM rather than explicit provider APIs. This discrepancy is unexplained.
Instruction Scope
Runtime instructions ask the agent to scan source folders (e.g., src/) and run node i18n-helper.js which will read project files and write/update locale JSON files and potentially auto-fix issues (--fix). That behavior is consistent with the stated purpose, but it does give the skill authority to read and modify project files. The SKILL.md does not instruct the agent to read unrelated system paths or secrets, nor does it grant broad open-ended data collection, but the file-modification capability is significant and should be run on a trusted or sandboxed copy first.
Install Mechanism
No install spec — instruction-only with included Node script. This is low-risk compared to downloading and executing archives from external URLs. The agent will rely on the existing node binary which is declared as required.
Credentials
The skill lists multiple third-party translation providers (DeepL, Google, OpenAI, Azure), but requires no environment variables or credentials in its metadata. Provider access normally requires API keys and endpoint configuration (e.g., DEEPL_API_KEY, GOOGLE_API_KEY, OPENAI_API_KEY, AZURE_*). The absence of declared env vars is a mismatch: the agent may prompt for credentials at runtime, expect global system creds, or contain hidden/undocumented network calls. This is the main proportionality concern.
Persistence & Privilege
always is false, user-invocable is true, and there are no declared config paths or requests to change other skills. The skill will write locale files within the project (local file persistence), which is expected for its purpose. No system-wide persistence or cross-skill config changes are indicated.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install cuihua-i18n-helper
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /cuihua-i18n-helper 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
🌍 First release! AI-powered i18n for React, Vue, Angular. Extract, translate, and maintain translations effortlessly.
元数据
Slug cuihua-i18n-helper
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Cuihua i18n Helper 是什么?

🌍 AI-powered internationalization (i18n) assistant for modern web applications. Automatically extract translatable strings, generate locale files, batch tra... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 108 次。

如何安装 Cuihua i18n Helper?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install cuihua-i18n-helper」即可一键安装,无需额外配置。

Cuihua i18n Helper 是免费的吗?

是的,Cuihua i18n Helper 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Cuihua i18n Helper 支持哪些平台?

Cuihua i18n Helper 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Cuihua i18n Helper?

由 supermario11(@supermario11)开发并维护,当前版本 v1.0.0。

💬 留言讨论