Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions skill/i18n/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Impeccable Live Mode — Translations

This directory contains UI translations for Impeccable Live Mode.

## Usage

1. Copy the desired translation file (e.g., `ru.json`) to your project root as `live_translations.json`
2. The Live Mode server will automatically load translations from this file

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Wire translations into live mode

When users copy ru.json as instructed, nothing consumes it: /live.js assembly in skill/scripts/live-server.mjs only injects token/port/vocabulary and concatenates the browser script parts, and repo-wide search for live_translations only hits this README. Since the new JSON files are never read or sent to live-browser.js, the Russian locale remains a no-op and Live Mode stays English.

Useful? React with 👍 / 👎.

Comment on lines +7 to +8

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 No translation-loading mechanism exists in the codebase

The README states "The Live Mode server will automatically load translations from live_translations.json," but no such loading code exists. Searches across live-browser.js, live-server.mjs, and live-inject.mjs find zero references to live_translations, translations, or any i18n dispatch. The UI strings (e.g., 'Applying variant...', ariaLabel: 'Pick element') are plain string literals hardcoded in live-browser.js. Until an implementation is added to read live_translations.json and substitute those literals at runtime, copying ru.json to the project root has no effect whatsoever.

Fix in Codex Fix in Claude Code


## Available Languages

- `ru.json` — Russian

## Contributing

To add a new language:

1. Copy `en.json` (or any existing translation) to `<language_code>.json`
2. Translate all values
3. Submit a PR

## Format

The translation file is a simple JSON object:

```json
{
"Original English text": "Translated text"
}
```

Keys are case-sensitive and must match exactly.
55 changes: 55 additions & 0 deletions skill/i18n/en.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"Pick element": "Pick element",
"Generate variants": "Generate variants",
"Create variants": "Create variants",
"Steer the page": "Steer the page",
"Steer": "Steer",
"Accept": "Accept",
"Discard": "Discard",
"Discard all variants": "Discard all variants",
"Done": "Done",
"Cancel": "Cancel",
"Clear": "Clear",
"Apply": "Apply",
"Applying ": "Applying ",
"Apply copy edits": "Apply copy edits",
Comment thread
cursor[bot] marked this conversation as resolved.
Comment on lines +14 to +17

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Trailing-space keys are a fragile pattern for any future implementation

Three keys — "Applying ", "Saved. Click ", and "Selected element: " — have trailing spaces, indicating they are partial strings meant to be concatenated with dynamic content at runtime. A translation system that does a simple key lookup on the full UI string would need to reconstruct those dynamic parts after the translated prefix, which isn't documented anywhere. Any future implementation will need explicit handling for these partial-string keys, or the approach needs to change (e.g., using a placeholder like "Applying {{name}}").

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Codex Fix in Claude Code

"Saved. Click ": "Saved. Click ",
"Toggle DESIGN.md panel": "Toggle DESIGN.md panel",
"Edit copy": "Edit copy",
"Detect anti-patterns": "Detect anti-patterns",
"Voice input": "Voice input",
"Stop voice input": "Stop voice input",
"Impeccable live mode": "Impeccable live mode",
"Selected element: ": "Selected element: ",
"Clear selection": "Clear selection",
"Variant applied": "Variant applied",
"Exit live mode": "Exit live mode",
"No detector issues found.": "No detector issues found.",
"Describe the change": "Describe the change",
"Describe the new element": "Describe the new element",
"Insert new element": "Insert new element",
"Save": "Save",
"Insert": "Insert",
"Pick": "Pick",
"Tune": "Tune",
"Applying variant...": "Applying variant...",
"Keep fixing": "Keep fixing",
"Note…": "Note…",
"apply is running...": "apply is running...",
"Resize placeholder": "Resize placeholder",
"Close panel": "Close panel",
"Variants ready. If the picked element isn't visible, retrace the path that revealed it - they'll appear automatically.": "Variants ready. If the picked element isn't visible, retrace the path that revealed it - they'll appear automatically.",
"Do's and Don'ts": "Do's and Don'ts",
"Freeform": "Freeform",
"Bolder": "Bolder",
"Quieter": "Quieter",
"Distill": "Distill",
"Polish": "Polish",
"Typeset": "Typeset",
"Colorize": "Colorize",
"Layout": "Layout",
"Adapt": "Adapt",
"Animate": "Animate",
"Delight": "Delight",
"Overdrive": "Overdrive"
}
Comment on lines +1 to +60

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 String count in PR description is incorrect

The PR description states "54 strings," but both en.json and ru.json contain 53 key-value pairs. This is a minor discrepancy, but it suggests the files were not carefully verified before submission.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Codex Fix in Claude Code

55 changes: 55 additions & 0 deletions skill/i18n/ru.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"Pick element": "Выбрать элемент",
"Generate variants": "Сгенерировать варианты",
"Create variants": "Создать варианты",
"Steer the page": "Направить страницу",
"Steer": "Промпт",
"Accept": "Принять",
"Discard": "Отклонить",
"Discard all variants": "Отклонить все",
"Done": "Готово",
"Cancel": "Отмена",
"Clear": "Очистить",
"Apply": "Применить",
"Applying ": "Применение ",
"Apply copy edits": "Применить изменения",
"Saved. Click ": "Сохранено. Нажмите ",
"Toggle DESIGN.md panel": "Панель DESIGN.md",
"Edit copy": "Изменить текст",
"Detect anti-patterns": "Антипаттерны",
"Voice input": "Голос",
"Stop voice input": "Стоп голос",
"Impeccable live mode": "Impeccable Live",
"Selected element: ": "Выбранный элемент: ",
"Clear selection": "Сбросить выбор",
"Variant applied": "Вариант применен",
"Exit live mode": "Выйти",
"No detector issues found.": "Проблем не найдено.",
"Describe the change": "Опишите изменения",
"Describe the new element": "Опишите новый элемент",
"Insert new element": "Вставить элемент",
"Save": "Сохранить",
"Insert": "Вставить",
"Pick": "Выбрать",
"Tune": "Настроить",
"Applying variant...": "Применение варианта...",
"Keep fixing": "Продолжить исправление",
"Note…": "Заметка…",
"apply is running...": "выполняется применение...",
"Resize placeholder": "Изменить размер заглушки",
"Close panel": "Закрыть панель",
"Variants ready. If the picked element isn't visible, retrace the path that revealed it - they'll appear automatically.": "Варианты готовы. Если выбранный элемент не виден, повторите путь, который его открыл — они появятся автоматически.",
"Do's and Don'ts": "Можно и Нельзя",
"Freeform": "Свободно",
"Bolder": "Жирнее",
"Quieter": "Тише",
"Distill": "Упростить",
"Polish": "Отполировать",
"Typeset": "Набрать",
"Colorize": "Раскрасить",
"Layout": "Макет",
"Adapt": "Адаптировать",
"Animate": "Анимировать",
"Delight": "Украсить",
"Overdrive": "Усилить"
}