Управление переводами REST API ключей (rest_*) для MikoPBX. Автоматически находит отсутствующие русские ключи в RestApi.php и синхронизирует их с исходным кодом. Использовать при проверке переводов API, после добавления новых endpoints или перед релизом.
Автоматическое управление русскими переводами REST API ключей для документации OpenAPI в MikoPBX.
Automatically activate when:
DO NOT activate when:
translations skill)cd .claude/skills/restapi-translations/scripts
# Step 1: Extract keys from code
python3 extract_keys.py
# Step 2: Validate translations
python3 validate_translations.py
# Step 3: Sync RestApi.php
python3 sync_translations.py --add-missing
./manage_translations.sh
# Menu:
# 1. Extract keys from source code
# 2. Validate translations
# 3. Add missing keys
# 4. Remove unused keys
# 5. Full sync (add + remove)
# 6. Preview changes (dry run)
# 7. Run all (extract + validate + sync)
'rest_Extensions_ApiDescription' => 'Комплексное управление внутренними номерами...'
Pattern: rest_{ResourceName}_ApiDescription
'rest_ext_GetList' => 'Получить список внутренних номеров'
'rest_ext_GetListDesc' => 'Получить пагинированный список всех...'
Pattern: rest_{abbr}_{Operation}[Desc]
'rest_response_200_get' => 'Запись успешно получена'
'rest_response_404_not_found' => 'Запись не найдена'
Pattern: rest_response_{code}_{type}
'rest_param_name' => 'Название'
'rest_schema_extension_list' => 'Список внутренних номеров'
'rest_security_bearer' => 'JWT Bearer Token аутентификация'
[ТРЕБУЕТ ПЕРЕВОДА] placeholders# 1. Write controller
vim src/PBXCoreREST/Controllers/MyResource/RestController.php
# 2. Extract + validate + sync
./manage_translations.sh all
# 3. Translate placeholders
grep "ТРЕБУЕТ ПЕРЕВОДА" src/Common/Messages/ru/RestApi.php
vim src/Common/Messages/ru/RestApi.php
# 4. Verify
python3 validate_translations.py
# 5. Commit
git add src/PBXCoreREST/Controllers/MyResource/
git add src/Common/Messages/ru/RestApi.php
git commit -m "feat: add MyResource REST API endpoints"
# Check for drift
./manage_translations.sh validate
# Review unused keys with team
# Clean up if agreed
./manage_translations.sh sync --remove-unused
# Complete check
./manage_translations.sh all
# Ensure no placeholders
grep "ТРЕБУЕТ ПЕРЕВОДА" src/Common/Messages/ru/RestApi.php
# Commit if changes
git add src/Common/Messages/ru/RestApi.php
git commit -m "chore: sync REST API translations"
Script generates context-aware Russian placeholders:
GetList → "Получить список [ТРЕБУЕТ ПЕРЕВОДА]"Create → "Создать запись [ТРЕБУЕТ ПЕРЕВОДА]"Update → "Обновить запись [ТРЕБУЕТ ПЕРЕВОДА]"Delete → "Удалить запись [ТРЕБУЕТ ПЕРЕВОДА]"_ApiDescription → "Описание API ресурса [ТРЕБУЕТ ПЕРЕВОДА]"rest_response_ → "Описание HTTP ответа [ТРЕБУЕТ ПЕРЕВОДА]"Always translate [ТРЕБУЕТ ПЕРЕВОДА] to proper Russian text!
RestApi.php.bak.YYYYMMDD_HHMMSS before changes--dry-run.bak files======================================================================
VALIDATION RESULTS
======================================================================
✅ Valid keys: 1370/1589 (86%)
❌ Missing keys: 219 (in code, not in RestApi.php)
⚠️ Unused keys: 358 (in RestApi.php, not used in code)
Missing Keys:
rest_ext_GetList (Controllers/Extensions/RestController.php:123)
rest_fw_CreateDesc (Controllers/Firewall/RestController.php:89)
======================================================================
REST API TRANSLATION SYNCHRONIZATION
======================================================================
➕ Adding 219 missing keys...
✅ Backup created: RestApi.php.bak.20251024_143022
🔍 Validating PHP syntax...
✅ PHP syntax is valid
Next steps:
1. Review changes: git diff src/Common/Messages/ru/RestApi.php
2. Translate placeholder text from Russian
3. Run validate_translations.py to verify
Fix: Run python3 extract_keys.py first
Fix: Script auto-restores from backup
Fix: Review carefully, check if for future features, ask team
Fix: grep -n "ТРЕБУЕТ ПЕРЕВОДА" src/Common/Messages/ru/RestApi.php and edit
openapi-analyzer - Get endpoint list, validate completenessendpoint-validator - Check translation coveragetranslations - Propagate to other 29 languages.claude/skills/restapi-translations/
├── SKILL.md # This file
├── README.md # User documentation
├── QUICKSTART.md # Quick start guide
└── scripts/
├── extract_keys.py # Extract keys from code
├── validate_translations.py # Validate translations
├── sync_translations.py # Sync RestApi.php
├── manage_translations.sh # Interactive wrapper
└── extracted_keys.json # Generated data
Current state:
Files scanned: 479 PHP files
Keys found: 2876 total usages
Unique keys: 1589 unique keys
Valid keys: 1370/1589 (86%)
Missing keys: 219 need to be added
Unused keys: 358 could be removed
Goal: 100% Valid keys (perfect sync)
Before considering complete:
[ТРЕБУЕТ ПЕРЕВОДА] markers# Interactive mode
./manage_translations.sh
# Command-line mode
./manage_translations.sh extract
./manage_translations.sh validate
./manage_translations.sh sync --add-missing
./manage_translations.sh sync --remove-unused
./manage_translations.sh all
# Direct Python
python3 extract_keys.py
python3 validate_translations.py
python3 sync_translations.py --add-missing --dry-run
python3 sync_translations.py --add-missing --remove-unused
Translation management succeeds when: