Phase 2: i18n (_locales + data-i18n bindings)#5
Merged
Conversation
Подготовка к Chrome Web Store submission на en-локали (CWS-блокер из плана
ревью): убраны hardcoded русские строки из default UI расширения.
- Добавлены _locales/en/messages.json и _locales/ru/messages.json с ~110
UI-ключами; manifest получил default_locale: "en" и references __MSG__
на name/description/action_default_title.
- options.html полностью размечен data-i18n / data-i18n-placeholder /
data-i18n-html / data-i18n-aria-label атрибутами; дефолтный текст
внутри элементов — английский (его видно если chrome.i18n не
отработал).
- options.js: добавлен helper applyI18n(), пробегается по [data-i18n*]
атрибутам на DOMContentLoaded и подставляет переводы. Динамические
строки (provider sub, btn-toggle Configure/Done, key-test result,
onboarding summary) тоже идут через i18n('key') с английским
fallback'ом.
- options.js BUILTIN_PERSONAS: label/hint переведены на английский как
default-locale текст; chrome.i18n при необходимости перекрывает
локализованными строками (TODO: добавить persona-* ключи в _locales
следующей итерацией).
- content_script.js: hardcoded русские titles/placeholders ("Эмодзи",
"Написать промт", "Ваш промт к посту…", "Отправка…", "Ошибка
генерации") выведены через tta_i18n('cs_*') с английским fallback'ом.
- content_script.js STYLES: значения переведены на английский, autonyms
языков в LANGS оставлены как есть.
- cleanupXLabels: список "Перевести пост" расширен до Set с английским
вариантом, чтобы работало в обеих локалях X.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Вторая партия правок по итогам кодревью — i18n инфраструктура для Chrome Web Store submission. Без поведенческих изменений: переключения логики языка нет, всё runtime через
chrome.i18n.getMessageс английским fallback внутри HTML/JS.Что добавлено
_locales/en/messages.jsonи_locales/ru/messages.json— ~110 UI-ключей с покрытием options page (карточки, advanced section, dev section, onboarding wizard, dynamic strings, content-script tooltips).default_locale: "en",name/description/action.default_titleчерез__MSG_*__.options.html— все текстовые элементы размеченыdata-i18n/data-i18n-placeholder/data-i18n-html/data-i18n-aria-label. Дефолтный inline-текст — на английском (видим еслиchrome.i18nне отработал).options.js— helperapplyI18n(), бежит по[data-i18n*]атрибутам на DOMContentLoaded и подставляет переводы. Динамические строки тоже идут черезi18n('key')с fallback.options.jsBUILTIN_PERSONAS —label/hintпереведены на английский как default. TODO в комментариях: добавитьpersona_<id>_label/hintключи в_localesследующей итерацией.content_script.js— добавленtta_i18n(), hardcoded русские titles/placeholders выведены через i18n с английским fallback'ом.STYLESтеперь en,cleanupXLabels— расширяемыйSetс en+ru вариантами"Translate post"/"Перевести пост".Что НЕ затронуто
_locales/ru/) — отдельная итерация, не блокирует CWS submission на en.Test plan
chrome://extensions→ перезагрузить расширение → options открываются без ошибок в консолиchrome://settings/languages→ English first → options полностью на английскомcard-provider-sub)✅ Key looks good/❌ …на ожидаемом языкеweb-ext lint— 0 ошибок по i18n🤖 Generated with Claude Code