Перевод интерфейса
Описание
В пользовательском интерфейске объекты модели метаданных отображаются по заданным для них синонимам. Синоним задается для каждого языка интерфейса.
Также элементом интерфейса являются так называемые интерфейсные строки в коде. Они записываются с помощью функции НСтр()
(NStr()
) для каждого языка интерфейса и используются, в частности для отображаения сообщений пользователю. В эту функцию добавляется строка для какждого языка интерфейса.
Элментами перевода интерфейса являются синонимы объектов метаданных и интерфейсные строки. Интерфейсные строки переводится полностью за исключением параметров.
Начальные настройки
В среде 1C:EDT с установленным инструментом 1C:Language Tool развернут проект конфигурации с интерфейсом на одном языке. Он же является основным языком конфигурации и языком кода. В этот проект должны быть добавлены переводимые языки (Translate Language). Сделать можно это следующими способами: - В дереве конфигурации, используя контекстную команду New - Translate Language


Для всех языков перевода указывается вариант Interface only

Если перевод выполняется внешней командой, то требуется дополнительно настроить внешние проекты. Настройка внешний проектов подробно показана на примере ниже.
Перевод элементов интерфейса с помощью панели Translations
Для всех элементов интерфейса нужно задать перевод на эти языки. Для перевода рекомендуется использовать контекстную панель Переводы (Translations). Также можно использовать дополнительные инструменты, в частности перевода: Yandex.Translate, Google Translate, Microsoft Translator.

Перевод элементов интерфейса с помощью стандартных редакторов 1C:EDT
1C:Language Tool позволяет прозрачно редактировать все интерфейсы в стандартных редакторах 1C:EDT. Введенные переводы будут сохранены во внешние файлы.
В редактор модулей аналогично будут добавлены интерфейсные строки в НСтр()
а на этапе сохранения файла - интерфейсы будут сохранены отдельно и тексты модулей изменены не будут.
Редактирование параметров модели в интерфейсных текстах
В 1С:Предприятии используются параметры в квадратных скобках Интерфейсный тектс [Параметр1] продолжение текста
для программной подстановки значений в шаблон. А так же аналогичные параметры в интерфейсных строка в модулях. Такие параметры не должны переводиться в рамках перевода интерфейса т.к. программный код, заполняющий эти параметры, может расчитывать на их существование при работе пользователя в другом интерфейсе. При переводе модели - такие параметры переводятся как отдельные элементы.
В 1C:Language Tool поддерживаются параметры:
- В квадратных скобках
[Параметр1]
[Параметр2]
- Обрамленные символом %
%МойПараметр1%
%МойПараметр2%
Имена параметров должны соответствать требованиям для имен идентификаторов в 1С:Предприятии.
Пример перевода интерфейса одной командой разработки
Есть конфигурация на исходном языке, для определенности на русском. В ней дополнительно добавим интерфейсы на Английском, Испанском и Немецком языке
- В дереве конфигурации добавьте язык, на который будет переводиться интерфейс, используя контекстную команду New - Translate Language

- Для языка перевода укажите идентификатор на языке конфигурации и двухбуквенный код языка по классификации ISO 639-1, вариант перевода Interface only

- Укажите синонимы - название вновь создаваемого языка переводя на всех языках, используемых в конфигурации

- Для используемых языков можно выбирать национальные флаги стран в свойствах проекта, если в коде языка не указан "регион" и у языка больше одной основной страны (например, Испанский, Английский).

- В контекстной панели Translations задайте переводы для всех элементов интерфейса. Для упрощения перевода используйте дополнительные инструменты, облегчающие перевод, в частности Yandex.Translate

- При редактировании переводов интерфейсных строк в коде можно использовать как панель Translation, так и форму Strings in Different Languages (команда Multilingual string wizard в контекстном меню).

- После того как заданы переводы можно запускать конфигурацию для отладки. Для базы должны быть заданы дополнительные параметры запуска. Например: /L en /VL en для английской локализации платформы.

- Для пользователя, под которым производится запуск, выберите соответствующий язык интерфейса

- Запустите конфигурацию и проверьте, как выглядит интерфейс

- В перспективе 1C:Enterprise работа с дополнительным языками интерфейса, созданными средствами 1C:Language Tool, не отличается от стандартных приемов работы с языками платформы 1С:Предприятия. Например, так выглядит сообщение на разных языках в перспективе 1C:Enterprise

- В ресурсной перспективе можем посмотреть, что переводу хранятся отдельно от файлов конфигурации. В перспективе 1C:Enterprise все переводы автоматически подгружаются и формируются все синонимы, строки перевода, как если бы мы работали с переводами средствами платформы.

Пример перевода интерфейса с привлечением внешних команд разработки
Есть конфигурация на исходном языке, для определенности на русском. В ней дополнительно добавим интерфейсы на Английском, Испанском и Немецком языке
- Откройте окно редактора проекта из контекстного меню (команда Open Project Editor)

- Перейдите на закладку Translate и в таблице languages добавьте языки перевода. Для языка перевода укажите идентификатор на языке конфигурации и двухбуквенный код языка по классификации ISO, вариант перевода Interface only

- Укажите синонимы - название вновь создаваемого языка переводя на всех языках, используемых в конфигурации

- Для используемых языков можно выбирать национальные флаги в свойствах проекта

- Для каждой внешней команды нужно создайте собственный проект (меню File - New - Project).

- В окне помощника выберете General - Project

- Далее укажите имя и расположение проекта. Рекомендуемое имя проекта состоит из имени исходного проекта и через точку языка перевода.

-
Нажмите F5, чтобы проект отобразился в панели навигации
-
В таблице External projects Редактора проекта добавьте каждый созданный проект и укажите соответствующий ему язык. Проект указывается в поле Choose project as external:

- Опубликуйте проекты, созданные для внешних команд (Команда Team - Share в контекстном меню)

- При публикации проекта нужно выбрать расположение репозитория. Например, можно создать репозиторий (кнопка Create) в локальной папке

-
После этого нужно предоставить доступ к репозиторию переводимой конфигурации и репозиторию проекта-перевода на соответствующий язык внешней команде разработки.
-
Внешняя команда разработки импортирует себе проект переводимой конфигурации и проект перевода и далее работает с переводом конфигурации, так же как и в примере с одной командой разработки. В частности используя панель Translations и другие инструменты, облегчающие перевод, в частности Yandex.Translate

- В перспективе 1C:Enterprise работа с дополнительным языками интерфейса, созданными средствами 1C:Language Tool, не отличается от стандартных приемов работы с языками платформы 1С:Предприятия. Например, так выглядит сообщение на разных языках в перспективе 1C:Enterprise

- В ресурсной перспективе можем посмотреть, что переводу хранятся отдельно от файлов конфигурации, в проекте который соответствует языку перевода. В перспективе 1C:Enterprise все переводы автоматически подгружаются и формируются все синонимы, строки перевода, как если бы мы работали с переводами средствами платформы.
