Synthèse automatique
Gère les fichiers de localisation *.xcstrings pour les applications iOS/macOS, en nettoyant les entrées obsolètes, détectant les traductions manquantes et ajoutant les traductions en chinois simplifié et traditionnel.
Points forts
- Automatisation complète du flux de travail de traduction avec des scripts batch
- Détection précise des entrées obsolètes et des traductions manquantes
- Support natif du chinois simplifié et traditionnel avec conversion automatique
Limites
- Nécessite Python 3 et des scripts spécifiques dans le projet
- Ne gère que le chinois (zh-Hans/zh-HK) pour les ajouts automatiques
- Les modifications sont directement appliquées aux fichiers sans contrôle de version intégré
Utilisez cette compétence pour maintenir la qualité des traductions chinoises dans les projets iOS/macOS avec de nombreux fichiers .xcstrings.
Ne l'utilisez pas si vous travaillez avec d'autres langues que le chinois, ou si votre projet n'utilise pas le format .xcstrings.
Analyse de sécurité
PrudenceThe skill runs Python scripts to manipulate translation files. No network calls, obfuscation, or destructive commands are present, but file system modifications and script execution warrant caution.
- •Skill instructs execution of Python scripts that directly modify *.xcstrings files. While the intent is legitimate, running untrusted code (if the skill is compromised) could lead to unintended file modifications.
- •Uses bash commands with find -exec and for loops, which could be powerful if misused, but are contained within specific file patterns.
Exemples
Check all xcstrings files in the project for missing translations.Add translation to Core.xcstrings: key 'Copy' -> Simplified '拷贝', Traditional '拷貝'.Clean all stale entries from all .xcstrings files in the project.name: i18n-translate description: 管理 iOS/macOS 应用的 *.xcstrings 本地化翻译文件。自动清理过期条目、检测缺失翻译、添加简繁体中文翻译。当用户需要处理翻译、补充缺失的 zh-Hans/zh-HK 翻译、或清理 *.xcstrings 文件时使用此 skill。
iOS/macOS 本地化翻译管理
管理项目中所有 *.xcstrings 文件的中文翻译,支持简体中文 (zh-Hans) 和繁体中文 (zh-HK)。
工作流程
处理翻译请求时,首先查找所有 .xcstrings 文件,然后按以下顺序执行:
0. 查找所有 .xcstrings 文件
find . -name "*.xcstrings" -not -path ".*" | head -20
1. 清理过期条目
python3 scripts/clean_stale.py <文件路径>.xcstrings
删除所有 extractionState 为 stale 的条目。可批量处理所有文件:
find . -name "*.xcstrings" -not -path ".*" -exec python3 scripts/clean_stale.py {} \;
2. 检查缺失翻译
python3 scripts/check_missing.py <文件路径>.xcstrings
输出缺失的 zh-Hans 和 zh-HK 翻译统计。可批量检查:
for f in $(find . -name "*.xcstrings" -not -path ".*"); do
echo "=== $f ==="
python3 scripts/check_missing.py "$f"
done
3. 添加翻译
python3 scripts/add_translation.py <文件路径>.xcstrings "Key" "简体中文翻译" "繁體中文翻譯"
<文件路径>.xcstrings: 目标文件路径(必需)Key: 条目的 key(必需)zh-Hans: 简体中文翻译(必需)zh-HK: 繁体中文翻译(可选,未提供时自动转换)
4. 验证文件
python3 scripts/validate.py <文件路径>.xcstrings
验证 JSON 格式正确性并统计翻译完成度。可批量验证:
for f in $(find . -name "*.xcstrings" -not -path ".*"); do
echo "=== $f ==="
python3 scripts/validate.py "$f"
done
批量处理所有文件
使用 batch_process.py 脚本一次性处理所有 .xcstrings 文件:
# 列出所有 .xcstrings 文件
python3 scripts/batch_process.py list
# 批量清理所有文件的过期条目
python3 scripts/batch_process.py clean
# 批量检查所有文件的缺失翻译
python3 scripts/batch_process.py check
# 批量验证所有文件的格式
python3 scripts/batch_process.py validate
# 指定项目目录
python3 scripts/batch_process.py validate --dir /path/to/project
翻译原则
- 占位符保持不变:
%@,%lld,%1$@,%d等格式化占位符必须原样保留 - 技术术语: API, SQLite, Host 等专有名词可保持英文
- UI 文本: 简洁明了,符合 macOS/iOS 应用习惯
- 简繁转换:
add_translation.py包含常见词汇的简繁转换映射
使用示例
用户: 检查项目所有 xcstrings 文件缺少的翻译
→ 运行 batch_process.py list 查看所有文件
→ 运行 batch_process.py check 检查所有文件
用户: 为 Core.xcstrings 中的 "Copy" 添加翻译
→ 运行 add_translation.py Core/Core.xcstrings "Copy" "拷贝" "拷貝"
用户: 清理所有 xcstrings 文件中过期的翻译条目
→ 运行 batch_process.py clean
用户: 验证所有翻译文件的格式和完成度
→ 运行 batch_process.py validate
用户: 处理特定目录下的翻译文件
→ 运行 batch_process.py check --dir ./Modules
注意事项
- 所有操作会直接修改指定的
.xcstrings文件 - 修改前建议先备份文件
- JSON 缩进使用 2 个空格
- 编码必须是 UTF-8
- 批量处理时使用
find命令过滤掉隐藏文件(.*/.*)
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/ios-macos-i18n-translation-management-mm5t89tk/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/ios-macos-i18n-translation-management-mm5t89tk' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/ios-macos-i18n-translation-management-mm5t89tk/download' --output '.skill-downloads/ios-macos-i18n-translation-management-mm5t89tk/SKILL.md.part' && mv '.skill-downloads/ios-macos-i18n-translation-management-mm5t89tk/SKILL.md.part' '.skill-downloads/ios-macos-i18n-translation-management-mm5t89tk/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/ios-macos-i18n-translation-management-mm5t89tk/SKILL.md' && test -s '.skill-downloads/ios-macos-i18n-translation-management-mm5t89tk/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/i18n-translate' && cp -R '.skill-downloads/ios-macos-i18n-translation-management-mm5t89tk' '.claude/skills/i18n-translate'Cursor
test -f '.skill-downloads/ios-macos-i18n-translation-management-mm5t89tk/SKILL.md' && test -s '.skill-downloads/ios-macos-i18n-translation-management-mm5t89tk/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/i18n-translate' && cp -R '.skill-downloads/ios-macos-i18n-translation-management-mm5t89tk' '.cursor/skills/i18n-translate'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/ios-macos-i18n-translation-management-mm5t89tk'openskills read 'ios-macos-i18n-translation-management-mm5t89tk'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/ios-macos-i18n-translation-management-mm5t89tk/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.