mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-13 15:03:20 +03:00
Платформа хранит текст ячейки по элементу на язык. Декомпилятор брал ПЕРВЫЙ и терял остальное, компилятор писал всегда ru захардкоженно. В корпусе ERP текст лежит и под ru, и под en у 10 730 макетов из 10 924 — то есть терялось у 98%. Форма взята готовая — конвенция ML-значений из docs/meta-dsl-spec.md §4.4, по которой уже живут synonym, tooltip и title в метаданных и формах: строка означает русский текст, объект даёт по надписи на язык в порядке ключей. Новых понятий не вводили, ключи те же (text и template). Документный ключ для языков НЕ заводили, и это измерение, а не экономия: блок languageSettings мы и так эмитим байт в байт как платформа (currentLanguage ru, defaultLanguage ru, один languageInfo). Отклонения редки — 8 макетов ERP с currentLanguage en, 3 без него, 157 с объявленной парой ru+en, всего около 1,6%. Заодно это снимает развилку из разбора PR #62: список языков компилятор дописывать не должен, платформа его не дописывает. Эффект на пилоте: категория row[].cell[].tl упала с 47 252 до 12 488 — минус 74%, самое крупное улучшение кампании. Остаток частично классифицирован: 348 строк — ячейки с ПУСТЫМ <tl> у оригинала, которых мы не эмитим вовсе; полностью разобрать мешает обрезка диффа по 400 строк на объект. Снэпшоты не дрейфанули: кейсы пишут текст строкой, и вывод для неё прежний. Проверено: тесты 54/54 на обоих рантаймах, verify-snapshots 24/24, вывод портов совпадает байт в байт и в компиляции, и в декомпиляции. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
36 lines
940 B
JSON
36 lines
940 B
JSON
{
|
|
"name": "Многоязычный текст ячейки: строка = ru, объект = по элементу на язык",
|
|
"input": {
|
|
"columns": 3,
|
|
"areas": [
|
|
{
|
|
"name": "Шапка",
|
|
"rows": [
|
|
{
|
|
"cells": [
|
|
{ "col": 1, "text": "Только по-русски" },
|
|
{ "col": 2, "text": { "ru": "Поставщик", "en": "Supplier" } },
|
|
{ "col": 3, "template": { "ru": "Итого: [Сумма]", "en": "Total: [Сумма]" } }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"params": {
|
|
"outputPath": "Template.xml"
|
|
},
|
|
"validatePath": "Template.xml",
|
|
"expect": {
|
|
"files": ["Template.xml"],
|
|
"fileContains": {
|
|
"file": "Template.xml",
|
|
"text": [
|
|
"<v8:lang>en</v8:lang>",
|
|
"<v8:content>Supplier</v8:content>",
|
|
"<v8:content>Поставщик</v8:content>"
|
|
]
|
|
}
|
|
}
|
|
}
|