Таблица редактора и продвинутые возможности
О запуске редактора и его дашборде — на странице UI редактора локалей.
Таблица редактора
- Инлайн-редактирование — клик по любой ячейке для редактирования на месте; сохранение через Enter или ✓, отмена через Escape
- Группы по неймспейсам — ключи группируются по префиксу через точку; группы сворачиваются/разворачиваются; произвольная глубина вложенности
- Групповые операции — добавить подгруппу, добавить ключ, переименовать неймспейс, удалить группу
- Инлайн-действия над ключом — переименовать, дублировать, добавить/изменить заметку, удалить
- Пакетный выбор и удаление — чекбоксы строк + панель массового удаления
- Карта использования — разверните любую строку ключа, чтобы увидеть, какие исходные файлы на него ссылаются; кликабельные чипы файлов открывают файл в вашей IDE (VS Code, Cursor, WebStorm, PhpStorm, IntelliJ)
- Валидация ячеек — встроенные предупреждения о несовпадении плейсхолдеров, несовпадении HTML-тегов, ошибках синтаксиса ICU, длине > 2.5× от референса
- Память переводов — ранее сохранённые переводы для похожих исходных строк показываются как чипы-подсказки в один клик
- Предпросмотр множественного числа — для ICU-ключей показывает отрендеренные формы для
n = 0, 1, 2, 5, 11, 21по всем локалям - Предпросмотр интерполяции — разверните строку ключа, чтобы заполнить значения
{variable}и увидеть отрендеренный результат по каждой локали - Навигация с клавиатуры — стрелки перемещаются между ячейками; Enter начинает редактирование; Пробел переключает выбор
- Живая перезагрузка — при изменении файла локали на диске затронутая локаль перезагружается автоматически через SSE
Панель инструментов и заголовок
| Возможность | Сочетание клавиш | Описание |
|---|---|---|
| Быстрый переход | Ctrl+P | Нечёткий поиск по всем ключам по имени; мгновенный переход |
| Поиск и замена | Ctrl+H | Поиск значений по всем локалям или конкретной; предпросмотр и применение замен |
| Отменить | Ctrl+Z | Отменить последнее сохранённое изменение (до 100 шагов) |
| Экспорт CSV | — | Скачать все переводы в виде CSV-файла |
| Импорт CSV | — | Загрузить CSV; предпросмотр различий перед применением |
| Экспорт XLIFF / PO | — | Экспортировать локаль для CAT-инструментов / Poedit / Weblate |
| Импорт XLIFF / PO | — | Импортировать завершённый файл от переводчика |
| Перевести отсутствующее | — | Автоперевод отсутствующих значений через LibreTranslate или DeepL |
| Справка по сочетаниям | ? | Показать шпаргалку по сочетаниям клавиш |
Панель фильтров
| Фильтр | Описание |
|---|---|
all / missing / complete | Показать все ключи, только с отсутствующими переводами или только полностью переведённые |
unused | Показать только ключи, на которые нет ссылок ни в одном исходном файле |
phantom | Показать только ключи, используемые в коде, но отсутствующие во всех файлах локалей |
stale | Показать только ключи, чьё референсное значение изменилось с момента последней проверки |
Обнаружение устаревших переводов
Когда установлено staleTracking: true, редактор отслеживает изменения референсной локали и помечает переводы в других локалях как потенциально устаревшие.
// i18n-kit.config.json
{
"staleTracking": true
}Как это работает:
- Когда вы сохраняете значение в референсной локали через редактор, хэш SHA1 сохраняется в
i18n-kit.notes.jsonпод_hash.<key>. - При следующей загрузке редактор сравнивает каждое референсное значение с сохранённым хэшем.
- Ключи с несовпадающим хэшем отображаются со значком
⚠ outdatedв редакторе. - Специальный фильтр
staleпоказывает только устаревшие ключи. - Клик по кнопке Отметить как проверенное сбрасывает хэш — используйте это после обновления всех переводов.
Экспорт и импорт XLIFF / PO
Отраслевые стандартные форматы файлов перевода — совместимы с Phrase, Lokalise, Weblate, OmegaT, Poedit и большинством CAT-инструментов.
Файл XLIFF содержит <source> (референсный текст) и <target> (текущий перевод). Заметки переводчика из редактора отображаются как элементы <note>. Файл PO использует msgctxt для имени ключа, msgid для исходного текста и msgstr для перевода.
Заголовок редактора локалей содержит кнопки Export XLIFF, Export PO и Import, которые открывают диалоги выбора локали.
Машинный перевод
Редактор может автоматически перевести все отсутствующие ключи одним кликом. Поддерживаются два движка — выбор в Settings → Translation engine.
LibreTranslate
Открытый, самостоятельно размещаемый API перевода. Публичный инстанс на https://libretranslate.com бесплатен при низкой нагрузке.
DeepL
Более высокое качество перевода. Бесплатный план покрывает 500 000 символов/месяц — зарегистрируйтесь на deepl.com/pro для DeepL API Free.
Ключи, оканчивающиеся на :fx, автоматически используют бесплатный эндпоинт api-free.deepl.com.
Обработка плейсхолдеров
Оба движка получают строки, в которых {variable} и блоки множественного числа ICU ({count, plural, ...}) заменены на непрозрачные XML-теги (<x id="0"/>). После перевода теги подставляются обратно — плейсхолдеры переживают перевод неизменными независимо от изменений порядка слов.