История изменений

Список важных изменений по версиям.

1.6.0 (1C:EDT 2024.1.3)

Новые фичи
  • Добавлена возможность собирать отдельно неизвестные методы, требующие перевода особым образом:
    • В мастере генерации строк перевода для параметра Collect extra strings добавлен вариант Only unknown methods;
    • В интерфейсе командной строки в команде генерации строк перевода generate-strings для параметра - -collect-computed добавлен вариант unknown;
Исправленные ошибки
  • При конвертации языкового проекта не создавался файл манифеста;
  • При конвертации языкового проекта имя языка, для которого выполняется конвертация, не переводилось;
  • При отображении и при выгрузке статистики переводов неправильно работало округление значения доли переведенных ключей;
  • После экспорта статистики переводов в файл Excel этот файл невозможно открыть. В процессе исправления этой ошибки расширение формируемого файла Excel изменено с .xlsx на .xls;
  • В результате перевода мог пропасть модуль. Эта ошибка возникала в том случае, если модуль содержал неправильный строковый литерал функции Формат().

1.6.0 (1C:EDT 2024.1.2)

Новые фичи
  • В интерфейс командной строки добавлена команда export-translation-statistic для экспорта статистики переводов во внешний файл;
  • Реализована проверка PrunedDynamicFeatureAccessTranslationAmbiguityValidator, являющаяся аналогом проверки DynamicFeatureAccessTranslationAmbiguityValidator для проектов, в которых не добавлен переводимый язык. По умолчанию проверка отключена.
Исправленные ошибки
  • Ускорена генерация строк перевода в режиме командной строки;
  • Исправлен подбор ключей для однострочного комментария переменной;
  • Исправлен подбор ключей для комментариев вокруг переменных вне методов;
  • При переводе одинарные кавычки не дублировались в строковых литералах в функции НСтр(). Теперь они дублируются;
  • При переводе после последней языковой строки в функции НСтр() добавлялась точка с запятой. Теперь она не добавляется;
  • В результате перевода однострочного комментария у него на конце могла остаться буква на исходном языке;
  • В результате перевода в некоторых случаях могли обрезаться пробелы;
  • В некоторых ситуациях могли не переводиться однострочные комментарии, не привязанные к переменным;
  • Однострочные комментарии, начинающиеся с символа «-», переводились с ошибкой;
  • При переводе не создавался ключ для значения по умолчанию, указанного для параметра функции;
  • Не переводилось поле пути к данным у характеристик;
  • Переводимый язык не отображался в дереве проекта после добавления его в редакторе проекта или после конвертации языка конфигурации в переводимый язык;
  • Улучшено сообщение об ошибке в случае неправильного ключа для Yandex.Переводчика;
  • В некоторых ситуациях могли не переводиться поля динамического списка;
  • Отсутствовал перевод стандартных реквизитов табличных частей;
  • В переведенном проекте не очищался текст запроса после перевода в том случае, если был сброшен флаг Произвольный запрос. Теперь он очищается;
  • Исправлены ошибки в механизме конвертации языковых проектов.

1.4.0

Переход на EDT 2023.2.

1.3.0

Переход на EDT 2023.1.

1.2.0

Прочие изменения и улучшения
  • Переход на EDT 2022.1;
  • Поддержка типизации возвращаемого значения выборки результата запроса;
  • Поддержка перевода расширения событий модуля без заимствования модуля;
Исправленные ошибки
  • Исправлена ошибка при переводе xml-объектов конфигурации для значений по умолчанию;
  • СКД: В группировках ресурсов могут использоваться вычислимые поля;
  • Свойства в коде, образованные по ссылкам на строковые литералы могли не переводиться по контексту;
  • Исправлено падение при переводе док. комментария в редких случаях;
  • При переводе картинок в файлах HTML не переводятся дважды в одной строке;
  • Улучшено логирование в командах CLI;
  • Исправление фильтра по регулярным выражением в генераторе строк;
  • В куске запроса (@Query-part) в строковом литерале корректно переводятся пустые спец.символы;
  • Перевод неизвестных полей выбираемых по звездочке;
  • Исправлен алгоритм перевода произвольных комментариев и чистки комментариев при отсутствии перевода;
  • Исправлены ошибки, приводившие к зависанию в некоторых случаях;
  • Перевод сегментов стандартного строкового литерала, если не найден объект;
  • СКД: Перевод иерархии полей группировки итогов;
  • Исправление перевода псевдонима таблицы запроса с частичным совпадением по базовой таблице;
  • Перевод ключевого слова Ждать;
  • Перевод полей запроса через звездочку;
  • Исправление ошибки перевода ряда платформенных терминов;
  • Система заполнения отсутствующих переводов по другим языкам сделана более надежной.

1.1.0

1.0.0

Новые фичи
Подсистема расчета и визуализации статистики переводов проекта по языкам с различными метриками
Прочие изменения и улучшения
  • Перевод полей СКД стал более точным за счет расчета всех доступных полей;
  • Перевод ссылок на общие картинки в справке и Html-макетах;
  • Учет циклических ссылок при переводе временных таблиц без переводов и алиасов;
  • Учет прерывания при валидации запросов в модуле;
  • Улучшена система контекстного отображения фич для перевода, ранее приводившая к падениям в некоторых сценариях;
  • Пропуск устаревших замененных слов из контекста платформы при наличии новых переводов;
  • Импорт внешних языковых проектов в воркспейс для всех консольных команд;
  • Поддержка перевода значений форматированных строк в модулях и свойствах метаданных.
Исправленные ошибки
  • Исправлен перевод СКД, Табличного документа и HTML-документа для редких случаев;
  • Исправление двойной сбор строк комментария в текстах запросов.

0.11.0

Сломанные обратные совместимости

Изменены параметры запуска из командной строки `ring edt-langtol workspace generate-strings ...`;

Новые фичи
  • Добавлен перевод произвольных комментариев BSL;
  • Добавлен перевод комментариев в текстах запросов.
Прочие изменения и улучшения
  • Переход на EDT 2021.3;
  • Многократное ускорение генератора строк для второго и последующих запусков по проекту за счет использования кэша;
  • Ускорение валидации кода на неоднозначность перевода.
Исправленные ошибки
  • Исправлены ошибки перевода модулей, возникающие при многопоточном переводе в редких случаях;
  • Имя события ЗаписьЖурналаРегистрации не проверяется на наличие CamelCase в валидации;
  • Исправление алгоритма перевода языков (bsl, ql и т.д), приводившее к переполнению стека в больших модулях.

0.10.0

Сломанные обратные совместимости
Файловые хранилища переводов и настройки по проекту значительно изменены.
Новые фичи
  • Система отображения предложений переводов (Панель Translation Assist) контекстно по различным источникам с отображением всех вариантов переводов;
  • Все существующие проверки (валидация кода) переведены на новый механизм расширенной проверки конфигурации в EDT 2021.2 и дополнены различными настройками;
  • Добавлены новые валидации кода и метаданных:
    • Проверка дублей перевода ключей таблицы значений и дерева значений;
    • Проверка дублей переводов ключей для строкового литерала с типом keys;
    • Проверка ключа Структуры при вызове метода Вставить на наличие дублей перевода;
    • Проверка наличия переводов интерфейсных представлений в СКД;
    • Проверка наличия переводов модели СКД;
    • Проверка полей СКД, что задан заголовок в случае разыменования поля в запросе;
    • Проверка базовой формы в проекте расширения на соответствие форме конфигурации;
  • Добавлены новые QuickFix:
    • Ввод перевода ключей таблицы значений и дерева значений при дублировании переводов ключей;
    • Ввод перевода для строкового литерала с типом keys при дублировании перевода ключей;
    • Ввод перевода для ключа Структуры в вызове метода Вставить при наличии дубля перевода;
  • Новая система ресурсных хранилищ переводов и гибкая конфигурация возможностей и поведения хранилищ;
  • Добавлены параметры консольной команды `ring edt-langtool workspace generatestrings ... --check-translations-in-any-available-storage true` для проверки наличия переводов во всех хранилищах проекта;
  • Изменен алгоритм перевода строковых литералов в модуле — контекстный перевод всего текста берется в первую очередь, затем алгоритмический перевод по составным частям, и в последнюю очередь используется перевод из словаря;
  • Провайдеры переводов позволяющие заполнять хранилища по различным сценариям:
    • Автогенерируемые переводы (по настройке переводимого проекта) — можно сохранять в отдельный словарь;
    • Улучшение формирования CamelCase из интерфейсных переводов по частоте используемого значения;
    • "Умные регулярные выражения" стали работать как полноценный "словарь" в системе хранилищ переводов, количество таких сегментов теперь не ограничено. Реализовано добавление нового сегмента настроек из контекстного меню и отдельный редактор файла регулярных выражений;
    • Пред-просмотр переведенного текста модуля без наличия переведенного проекта из контекстного меню редактора модуля "Compare with".
Прочие изменения и улучшения
  • Переход на EDT 2021.2;
  • 1C:Language Tool поставляется с открытой лицензией, не требующей партнерского доступа и подписки ИТС;
  • Улучшены алгоритмы перевода:
    • Объектов формы (имен элементов, пути к данным, ссылки форматированных строк в т.ч. содержащие CamelCase);
    • Выражений СКД;
    • Языка запросов (в случаях расширения языка СКД, отсутствия обязательны алиасов, выбор всех полей и т.д.);
    • Кода при обращении к XDTO-объектам, виртуальным двуязычным полям регистров и др.;
    • Схемы Компоновки Данных (СКД);
    • Мокселя (параметры, выполняющие неявный запрос в БД);
    • Модели шаблонов ограничений доступа.
Исправленные ошибки
Исправлено множество различных ошибок.

0.9.0

Выпуск бета-версии для 1C:EDT 2021.1 без изменений функциональности.

0.8.0

Сломанные обратные совместимости
  • Строковые литералы, для которых тип контента не определен, переводятся с разбиением по ключам;
  • В файловых хранилищах (контекстное и общий словарь) ключи стали регистро-независимыми по умолчанию;
  • В файлах общего словаря модели уникальные значения контролируются без учета регистра;
  • Изменена генерация траслита для русских букв на ё -> yo, ъ -> y, ь -> ye что ранее приводило к не уникальности генерирования транслита для разных русских слов;
  • Изменена генерация ключей для модуля: добавлены префиксы Method, Param, Var, изменен префикс FeatureAccess элементов (обращение через точку) для увеличения детальности контекста.
Новые фичи
  • Поддержка перевода проектов расширений и проектов внешних обработок и отчетов;
  • Автоматическая синхронизация исходного и переведенного проекта, настройки синхронизации в редакторе проекта;
  • Новая система перевода строковых литералов:
    • Определение типа строкового литерала единожды;
    • Для каждого типа строкового литерала определяется свой процессор перевода, свой алгоритм и особенности;
    • Ускорена валидация литералов - теперь основывается на типах;
    • Убрана неоднозначность для множества ситуаций использования строковых литералов или парсинга их контента;
    • Поддержка переводов кусков запросов: автоматический перевод ключевых слов синтаксиса QL и пользовательских идентификаторов;
    • Авто-приведение регистра (верхний, нижний) всех символов для идентификаторов в строковых литералах на основе исходного значения;
    • Улучшено формирование контекстных ключей адресации для идентификаторов в строковом литерале колонок сортировки и в литерале без определенного типа;
  • Новая расширяемая система фильтрации результата сбора переводимых фич:
    • Возможность указывать расширенные параметры фильтрации в UI;
    • Добавлен провайдер для фильтрации по регулярным выражениям;
    • Добавлен провайдер фильтрации по всем настройкам переводимых фич объекта;
    • Поддержка фильтрации в консольном режиме, например: ring ... generate-strings ... --filter reresource-id-regex "^.*\.mdo$" feature-key-regex "^Synonym$";
  • В помощнике конвертации языка в переводимый язык добавлена возможность указывать проект для интерфейса или создавать новый;
  • Возможность для платформенных коллекций объектов с именованными элементами (обращение к элементу коллекции по имени) типизации элементов;
  • Возможность заполнения пользовательских объектов по контексту платформы;
  • Отключение перевода объектов по фичам, ресурсам, по составу подсистем с возможностью задавать маски, с учетом иерархии;
  • Поддержка рефакторинга в контекстных переводах при модификации исходного объекта EDT;
    • Возможность опционально включать рефакторинг по проекту;
  • Использование сегментов общего словаря, добавленных вручную, например bpo_segment_en.dict;
  • Добавлена UI настройка валидации в панель свойств проекта: ПКМ Properties -> V8 -> Translations -> Built-in language translation;
  • Добавлены новые валидации кода:
    • Проверка неоднозначности типа строкового литерала;
    • Проверка наличия параметров замены %Парам1% и [Парам2] в текстах запросов, нарушающих стандарт и ломающие синтаксис;
    • Загрузка запроса из строкового литерала и проверка корректности синтаксиса текста;
    • Проверка наличия перевода для динамических фич в коде (свойства и методы через точку);
    • Проверка наличия слов CamelCase в интерфейсных строках НСтр();
    • Проверка экспортных функций на возвращаемые типы в документирующем комментарии и локальные функции на наличие вычисленных типов;
  • Добавлены новые QuickFix:
    • Удаление конфликтующих аннотаций для строковых литералов;
    • Ввод отсутствующих переводов для пользовательских объектов в коде (области, процедуры, переменные);
    • Выбор перевода для неоднозначных терминов платформы в не типизированном коде;
    • Ввод отсутствующего перевода для динамических фич (свойства и методы через точку) в не типизированном коде;
    • Рефакторинг строк НСтр() содержащих слова в CamelCase с заменой на СтрШаблон() или СтрЗаменить();
    • Генерация нового или обновление существующего шаблонного документирующего комментария функций с обязательными возвращаемыми типами;
  • Добавлены новые проверки введенного значения перевода:
    • Проверка на CamelCase для модельных однострочных фич, у которых исходное значение фактически является CamelCase;
    • Совпадение количества строк перевода для строковых литералов в модуле;
    • Однострочные фичи проверяются, что значение не является многострочным;
    • НСтр и другие строковые литералы, содержащие стандартные параметры замены содержат все параметры;
    • Совпадение имен объектов модуля с ключевыми словами bsl, методы дополнительно проверяются на совпадения с функциями глобального контекста bsl;
  • Добавлена возможность использовать сервис Google Translate для переводов;
  • Добавлены провайдеры заполнения хранилищ переводов (в генерации строк) по текущим контекстным хранилищам и словарям проекта для возможностей перекомпоновки сегментов словарей, из словарей в контекстные переводы, из контекстных переводов в словарь;
  • Поддержка объектного перевода языка запросов ограничений доступа к данным (RLS) и языка шаблонов ограничений доступа;
  • Добавлена возможность формировать CamelCase из интерфейсных переводов;
  • Добавлены возможность проверки сегментов общего словаря по правилам:
    • Вхождения ключа в несколько сегментов общего словаря;
    • Разное количество служебных символов в ключе и значении словаря;
  • Добавлена UI настройка уровня проверки переменных в панель свойств проекта: ПКМ Properties -> V8 -> Translations -> Built-in language translation.
Прочие изменения и улучшения
  • Яндекс.Переводчик использует новое API от Яндекс.Облака с поддержкой пользовательских моделей для нейронного машинного перевода (NMT);
  • Microsoft Translator использует Azure Congnitive Services для перевода, поддержка Custom Translator с доступом к обученным моделям NMT;
  • Значительно ускорено сохранение данных в общий словарь модели с контролем уникальности значений для сотен тысяч записей;
  • Добавлено брендирование плагина в меню Help -> About;
  • Перенос панели Translations в стандартной перспективе 1C:Enterprise аналогично панели свойств;
  • При переводе не типизированного кода, расчет типов для платформенных коллекций с именованными элементами используется всегда;
  • Улучшен алгоритм перевода в не типизированном коде - порядок применения словарей выше, чем встроенная система догадок свойств по контексту объектов платформы;
  • Композитное хранилище переводов — теперь по умолчание определяется как "не контекстное";
  • Выделение API для хранилищ "только-чтение" и учет во всех механизмах;
  • Улучшения в механизме конвертации языка конфигурации - стабильность работы и исправление ошибок;
  • Улучшения работы в консольном режиме с переходом на новое API от EDT;
  • Переход на асинхронное обновление при выборе переводимых фич в редакторах и отображение в панели Translations;
  • Значительно улучшено потребление памяти при сборе генерации строк для перевода;
  • Добавлена панель настройки ресурсного хранилища, которая позволяет настраивать регистро-зависимость ключей и значений для модели и интерфейса, проверку уникальности значений;
  • Умные регулярные выражения выполняют поиск по всем словарям проекта, а не только по текущему;
  • Добавлена возможность заполнения html макетов и страниц справки из исходных файлов, при отсутствии переводов;
  • При импорте и трансляции полей с форматом значение меняется на английский;
  • Авто-вычисление параметров выражений СКД по параметрам самой схемы;
  • Добавлена валидация локальных переменных на наличие дублей перевода имен;
  • При генерации маски для авто переводимых переменных, не имеющих перевода, используется фиксированная нумерация, рассчитанная по модулю;
  • При наличии одинакового перевода у нескольких именованных объектов, для перевода переменных, начиная со второй, используется маскировка плюс исходный перевод слова, например Var_1_Common;
  • Словарь контекста платформы 1С:Предприятия дополнен функциями и свойствами глобального контекста, добавлена возможность отключать контроль уникальности обратного перевода Русский <-> Английский в свойствах проекта.
Исправленные ошибки
  • Улучшение перевода неоднозначного ключевого слова ССЫЛКА в строковых литералах Query-part;
  • Улучшение перевода неоднозначного ключевого слова ПО в строковых литералах Query-part;
  • Улучшение перевода алиасов таблиц в запросах;
  • Поддержка корректного перевода имени таблицы в запросе, указанного через хеш, например #ИмяТаблицы;
  • В языке запросов исправлен перевод выборки таблицы как поля;
  • Исправление перевода строковых литералов в выражениях СКД;
  • Загрузка переводов в значения параметров настроек СКД, созданная с одним языком;
  • Устранение утечки файловых дескрипторов.

0.7.1

0.7.0

Сломанные обратные совместимости
  • Для фичи (FeatureAccess - свойство или метод через точку) у которой не найден исходный объект - сначала запрашивать контекстный перевод, а потом в словаре контекста Платформы;
  • Отключение проверки свойств структуры на неоднозначность перевода - т.к. их необходимо переводить контекстно.
Новые фичи
  • Инструмент переведен на использование EDT 1.15 в качестве целевой платформы;
  • Добавлена поддержка хранения страниц справки и HTML-макетов в зависимых проектах (с ограничениями);
  • Добавлена загрузка переводимого языка из зависимого проекта;
  • Реализация открытия двупанельного редактора из контекстного меню редактора BSL.
Прочие изменения и улучшения
  • Доработана документация к инструменту;
  • Реализовано обновление текстов модулей при изменении перевода в хранилище;
  • Улучшение синхронной прокрутки двупанельного редактора.
Исправленные ошибки
  • Регистрозависимость при валидации неоднозначности переводов свойств и методов нетипизированных объектов;
  • Обработка двойных кавычек внутри выражений СКД;
  • Учет концевых пробелов в любых литералах, не только многострочных;
  • Модификация строковых литералов НСтр() без необходимости;
  • Исправление парсинга однострочного литерала начинающегося с |;
  • Копирование XDTO как есть.

0.6.1

Выпуск бета-версии для 1C:EDT 1.14 без изменений функциональности.

0.6.0

Выпуск бета-версии для 1C:EDT 1.13.