Skip to content

Issue #21: Исправлены неточности в лексиконах#82

Merged
biz87 merged 3 commits intobetafrom
feat/lexicons-issue-21
Feb 16, 2026
Merged

Issue #21: Исправлены неточности в лексиконах#82
biz87 merged 3 commits intobetafrom
feat/lexicons-issue-21

Conversation

@Ibochkarev
Copy link
Copy Markdown
Member

Описание

Приведение в порядок лексиконов MiniShop3 по плану Issue #21: удаление дублей и неиспользуемых ключей, унификация нотации (snake_case), перенос захардкоженных строк в лексиконы.

Сделано:

  • Дубли: ms3_err_token оставлен только в customer.inc.php, ms3_customer — в default.inc.php; убраны повторы в manager, product, properties, setting (ru/en).
  • Неиспользуемые ключи: удалены из cart.inc.php и order.inc.php (ключи не встречаются в коде).
  • Нотация: в setting.inc.php и properties.inc.php ключи переведены в snake_case (напр. ms3_source_max_upload_width_desc, ms3_prop_include_content, ms3_prop_include_tvs); в _build/build.php добавлен camelToSnake() для описаний свойств сниппетов, в resolver_04_sources.php — обновлены ключи для источников.
  • Перенос в лексиконы: в CustomerUI.js сообщения вынесены в customer.inc.php и выводятся через t(key); в ProductData.vue подписи и диалог удаления — в vue.inc.php через useLexicon и _().

Тип изменений

  • Исправление бага (non-breaking change)
  • Новая функциональность (non-breaking change)
  • Breaking change (изменение, ломающее обратную совместимость)
  • Рефакторинг (без изменения функциональности)
  • Документация
  • Другое (опишите):

Связанные Issues

Closes #21

Как это было протестировано?

  • Ручное тестирование (проверка сборки, отсутствие обращений к удалённым ключам, соответствие camelToSnake и ключей properties)
  • Автоматические тесты (PHPStan, ESLint)
  • Тестирование на разных версиях PHP/MODX

Конфигурация тестирования:

  • MiniShop3: (указать при необходимости)
  • MODX: (указать при необходимости)
  • PHP: (указать при необходимости)

Скриншоты (если применимо)

Не применимо — изменения в лексиконах и сборке.

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены/обновлены на двух языках (ru/en)
  • PHPStan проходит без новых ошибок
  • ESLint проходит без ошибок (для JS/Vue изменений)
  • Обновлён CHANGELOG.md (для значимых изменений)

Дополнительные заметки

  • Для свойства сниппета includeTVs в build используется ключ ms3_prop_include_tvs (исключение в camelToSnake).
  • Удалённые ключи: из cart/order — ms3_cart_add_error, ms3_cart_remove_error, ms3_order_err_validation_rules; дубли из других файлов по плану.

@Ibochkarev Ibochkarev requested a review from biz87 February 13, 2026 04:17
@Ibochkarev Ibochkarev self-assigned this Feb 13, 2026
@biz87
Copy link
Copy Markdown
Member

biz87 commented Feb 13, 2026

Ревью PR #82

Хорошая работа по наведению порядка в лексиконах — удаление дублей, унификация нотации, перенос хардкода в лексиконы. Есть несколько проблем.

1. CustomerUI.js — window.ms3Lexicon не заполняется новыми ключами (критично)

Метод t() ищет ключи в window.ms3Lexicon:

t (key) {
  return (typeof window !== 'undefined' && window.ms3Lexicon && window.ms3Lexicon[key]) || key
}

Но window.ms3Lexicon заполняется только в ms3_customer_unauthorized.tpl (для auth-ключей). Новые ключи (ms3_customer_err_occurred, ms3_customer_address_added, ms3_customer_profile_update_error и т.д.) нигде не передаются на фронтенд.

Результат: пользователь увидит сырые ключи вместо сообщений — ms3_customer_err_occurred вместо «Произошла ошибка».

Нужно добавить передачу этих ключей через window.ms3Lexicon в шаблонах ms3_customer_profile.tpl, ms3_customer_address_form.tpl и т.д.

2. Удалённые ключи из manager.inc.php — проверить что остаются дубли

Из manager.inc.php удалены ключи, которые используются в коде:

  • ms3_utilities_gallery_err_noproductsUtilitiesGallery.vue:118, Gallery\Update.php:75
  • ms3_utilities_gallery_for_stepUtilitiesGallery.vue:162
  • ms3_utilities_gallery_refreshUtilitiesGallery.vue:184
  • ms3_utilities_paramsUtilitiesGallery.vue:151

Grep показывает что эти ключи дублируются в файлах (есть вторые копии дальше по тексту). Если удаляется только первый экземпляр, а второй остаётся — ОК. Но стоит перепроверить, что после мержа ключи реально остаются.

3. ms3_vue_price_eur — захардкоженная валюта

$_lang['ms3_vue_price_eur'] = 'Price in EUR';

Валюта «EUR» — это демо/тестовые данные. В реальном магазине валюта другая. Если это для unUsedFields в ProductData.vue, это демо-контент, а не настоящий лексикон.

4. ms3_prop_* переименование — проверить обновление существующих установок

Ключи свойств сниппетов переименованы (ms3_prop_toPlaceholderms3_prop_to_placeholder). Нужно убедиться что при обновлении компонента build resolver обновляет desc у существующих свойств сниппетов. Иначе старые установки будут показывать сырые ключи вместо описаний.

5. setting_ms3_utility_import_fields — аналогично пункту 2

Ключи setting_ms3_utility_import_fields и setting_ms3_utility_import_fields_delimiter существуют дважды в файлах. Убедиться что удаляется именно дубль, а не единственный экземпляр.

@biz87 biz87 merged commit e5de71f into beta Feb 16, 2026
@biz87 biz87 deleted the feat/lexicons-issue-21 branch February 16, 2026 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Неточности в лексиконах

2 participants