Добавить метод ЛСтр - локализованная строка. Альтернатива НСтр
Для локализации решений на другие языки сейчас есть метод НСтр, он подразумевает хранение всех строк перевода на все языки сразу же в коде. В результате любая локализация сталкивается с трудностями:
- Уже готовое решение локализовать без изменения конфигурации невозможно.
- Изменение всех модулей и всех форм конфигурации.
- Переводом должны заниматься технические специалисты, которые могут модифицировать конфигурацию. Просто переводчика посадить за качественный перевод интерфейсов который он может делать "онлайн" без изменения конфигурации не выйдет.
- Любой технический англоязычный специалист увидев NStr() и внутри что то на кириллице, на китайских иероглифах и прочих хинди закроет 1с и уйдет в другую платформу автоматизации. Хранить строковые константы в коде для локализованных решений - ошибка.
Предлагаю добавить новый общий объект "Локализованные строки". Она должна выглядеть как колонка ключа строки + колонки с языками добавленными в конфигурации. Сама таблица должна наполняться в конфигураторе, подобно как это сделано для предопределенных элементов справочника, но с возможностью для каждой строки задать перевод на все необходимые языки. Так же объект должен редактироваться в пользовательском режиме (для переводчиков) - например когда решение написано с английской + русской локализацией, но нужно добавить китайский - можно просто дать доступ до этого объекта в пользовательском режиме для переводчика, который заполнит необходимое.
Метод получающий локализованную строку может иметь следующий вид ЛСтр(<ключ строковой константы>). Ключ - произвольная строка. Если по ключу не найдена строковая константа или не задан перевод на текущий язык пользователя - возвращается сам ключ. Например: СтрШаблон(ЛСтр("На складе %1 не хватает остатков номенклатуры %2 в количестве %3 шт."), Склад, Номенклатура, НедостатокКоличества);
А чем не подходит окно "Редактирование текстов интерфейса"?