AgentSkillsCN

compare-i18n-keys

比较旧版Angular translate管道与新版Transloco t()函数之间的翻译键。当迁移i18n键从旧代码库到新代码库时,或当用户要求比较/修复翻译键时使用。

SKILL.md
--- frontmatter
name: compare-i18n-keys
description: Compare translation keys between legacy Angular translate pipe and new Transloco t() function. Use when migrating i18n keys from old codebase to new codebase, or when the user asks to compare/fix translation keys.

Compare translation keys between legacy Angular translate pipe and new Transloco t() function, then fix the new project.

Arguments

  • $ARGUMENTS - Format: --from <source_path> --to <target_path>
    • --from: Source HTML file in old project
    • --to: Target HTML file in new project

Process

Step 1: Extract Keys from Source (Legacy Angular)

Read the source file and extract translation keys using these patterns:

Pattern 1: Basic translate pipe

code
{{ 'key' | translate }}

Pattern 2: Translate pipe with parameters

code
{{ 'key' | translate: { param: value } }}

Pattern 3: Translate in attribute

code
placeholder="{{ 'key' | translate }}"
label="{{ 'key' | translate }}"
matTooltip="{{ 'key' | translate }}"

Step 2: Extract Keys from Target (Transloco)

Read the target file and extract translation keys using these patterns:

Pattern 1: Basic t() function

code
{{ t('key') }}
t('key')

Pattern 2: t() in attribute binding

code
[label]="t('key')"
[placeholder]="t('key')"
[matTooltip]="t('key')"

Step 3: Compare and Generate Report

Create a comparison report with:

CategoryDescription
OKKey matches exactly
DIFFERENTKey exists but different (may be intentional)
MISSINGSource key not found in target
EXTRATarget key not in source (informational)

Step 4: Output Report

markdown
# i18n Key Comparison Report

**Source:** {from_path}
**Target:** {to_path}

## Summary

| Category | Count |
|----------|-------|
| Matching Keys | X |
| Different Keys | Y |
| Missing Keys | Z |

**Match Rate: XX%**

## Missing Keys (Need Fix)

| Source Key | Context |
|------------|---------|
| `key.name` | Where it's used |

## Different Keys (Review)

| Source Key | Target Key |
|------------|------------|
| `old.key` | `new.key` |

Step 5: Apply Fixes

If user confirms, fix the target file by replacing incorrect keys with correct ones from source.

Usage

bash
/compare-i18n-keys --from=/path/to/legacy/component.html --to=/path/to/new/component.html