skills/translater/SKILL.md
Translation agent for ua/en bilingual content. Handles UI labels, help text, error messages, docs, and agent/system prompts. Finds translatable elements, detects supported languages, translates by context, maintains term consistency. Triggers on: "translate", "translation", "i18n", "missing translations", "mirror docs", "sync languages".
npx skillsauth add nmdimas/ai-community-platform translaterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Context-aware translation agent for the AI Community Platform's bilingual (Ukrainian/English) content. Translates by understanding meaning, not by mechanical word substitution.
| Content Type | File Patterns | Translation Direction |
|-------------|---------------|----------------------|
| Symfony translations | apps/*/translations/messages.*.yaml | EN <-> UK bidirectional |
| Twig templates | apps/*/templates/**/*.html.twig | Extract hardcoded strings to YAML |
| Documentation | docs/**/{ua,en}/*.md | UA -> EN mirror, EN -> UA mirror |
| Agent prompts | .opencode/agents/*.md, .claude/skills/**/*.md | Context-dependent |
| Error messages | src/**/*Exception.php, src/**/*Error.php | EN -> UK |
messages.en.yaml and messages.uk.yaml for each app. Find keys present in one but missing in the other.docs/**/ua/ and docs/**/en/ directories. Find files that exist in one language but not the other, or where the EN mirror is significantly outdated.{{ '...'|trans }}.Before translating any string:
Apply these rules:
%variable% stays as-is<a>, <strong>, etc. stay as-isAfter translating:
%name%, %count%) are preservedNever translate these mechanically:
| Category | Examples | Reason |
|----------|----------|--------|
| Code identifiers | Variable names, class names, function names | Code must stay in English |
| Technical terms (English convention) | Docker, Redis, API, A2A, SSE, YAML, JSON | Industry-standard English terms |
| Brand/product names | OpenClaw, Langfuse, LiteLLM, Traefik, Symfony | Proper nouns |
| Configuration keys | YAML keys, env var names, config parameters | Machine-readable identifiers |
| URLs and file paths | /admin/agents, composer.json | Technical references |
| Code blocks in docs | php ... , bash ... | Executable code |
| Semver versions | v0.1, 8.5 | Version identifiers |
Maintain consistent translations for platform-specific terms:
| English | Ukrainian | Notes | |---------|-----------|-------| | Agent | Агент | Not "Бот" | | Skill | Скіл | Not "Навичка" (too generic) | | Dashboard | Панель керування | Or "Статистика" for nav | | Settings | Налаштування | | | Tenant | Тенант | Transliteration, established in codebase | | Discovery | Виявлення | For agent discovery | | Marketplace | Маркетплейс | Transliteration | | Health check | Health-check | Keep English in technical context | | Enabled/Disabled | Увімкнено/Вимкнено | | | Install/Uninstall | Встановити/Видалити | | | Scheduler | Планувальник | | | Convention | Конвенція | | | Violation | Порушення | |
When encountering a new domain term not in this glossary:
messages.uk.yaml files| Resource | Path |
|----------|------|
| Core EN translations | apps/core/translations/messages.en.yaml |
| Core UK translations | apps/core/translations/messages.uk.yaml |
| Agent translations | apps/<agent>/translations/messages.*.yaml |
| Twig templates | apps/*/templates/ |
| Documentation | docs/ |
| Doc structure rules | .opencode/skills/documenter/SKILL.md |
After completing translation work, report:
## Translation Summary
### Files Modified
- `apps/core/translations/messages.uk.yaml` — added 5 keys
- `docs/features/en/scheduler.md` — created EN mirror
### Missing Translations Found
- 3 keys in messages.en.yaml without UK equivalent (now added)
- 1 doc file in ua/ without en/ mirror (now created)
### Term Consistency Notes
- Used "Планувальник" for "Scheduler" (consistent with existing translations)
- New term: "Worktree" → kept as "Worktree" (no established Ukrainian equivalent)
development
Convert a website or page with related links into a local collection of Markdown files with an index. Follows project docs conventions (ua/en bilingual structure). Uses WebFetch — no external dependencies. Triggers on: "web to docs", "website to markdown", "save docs locally", "convert site", "download docs", "fetch docs", "scrape to markdown".
development
Security review agent for PHP/Symfony codebase. Performs manual-style security review with OWASP ASVS 5.0 category mapping, severity ratings, and PHP/Symfony-specific checklist. Triggers on: "security review", "security audit", "vulnerability check", "OWASP review", "pentest review", "security scan".
development
Auto-bump pipeline monitor version when builder/monitor/pipeline-monitor.sh is modified. Triggers automatically as a post-edit convention — not user-invocable directly. When any change is made to pipeline-monitor.sh, increment the patch version in the "# Version:" header comment. Triggers on: "pipeline-monitor", "monitor version", "bump monitor".
testing
Harmonize agent admin UIs rendered in core admin iframe. Use when an agent admin page looks visually inconsistent with platform admin (different background, spacing, navbar, card styles, table contrast) or has iframe-only layout issues.