Справочный центр

Локализация 1С. Подготовка к локализации конфигураций 1С

Как подготовить к локализации проект, разработанный на платформе 1C

Иногда возникает необходимость перевести какую-либо конфигурацию 1С на английский язык, чтобы в ней могли работать как русскоязычные, так и англоязычные пользователи. Рассказываем, что нужно сделать, чтобы получить локализованную англоязычную конфигурацию 1С:Предприятие
1.Общие сведения

Локализация конфигурации 1С делится на следующие пункты:

  • локализация интерфейса — текстовые элементы графического интерфейса, такие как заголовки и подсказки элементов

  • локализация макетов — отчеты, табличные документы, справочная информация

  • локализация объектов — наименование и представление объектов конфигурации, таких как представление объекта и списка

  • локализация текстов в модулях — генерируемые в коде сообщения

В общем случае перед началом подготовки к локализации требуется создать объекты метаданных «Язык» на каждую необходимую локаль (Рисунок 1). При создании конфигурации один язык создаётся автоматически.
Рисунок 1: Объект метаданных "Язык"
Код языка формально может быть указан произвольно, однако для совместимости с другими приложениями рекомендуется следовать формату ISO 639-1.

Для всей конфигурации указывается свойство «Основной язык» (Рисунок 2). Для каждого пользователя также можно указать свой язык (Рисунок 3).
Рисунок 2: Основной язык конфигурации
Рисунок 3: Свойства пользователя
2.Локализация интерфейса

Под локализацией интерфейса подразумевается локализация компонентов форм: кнопок, таблиц, полей и т. д. Локализация доступна для следующих свойств:

  • Заголовок

  • Подсказка

  • Подсказка ввода

  • Расширенная подсказка

  • Предупреждение при редактировании

  • Формат и ФорматРедактирования

При редактировании одного из этих свойств будет отображено специальное окно, с вариантами перевода на все указанные языки (Рисунок 4).
Рисунок 4: Строки на разных языках
Свойства Формат и Формат Редактирования не являются текстом, а лишь отображают формат представления числовых данных, даты или булево значение.

Для некоторых свойств доступно расширенное редактирование (Рисунок 5)
Рисунок 5: Редактор форматированной строки
3.Локализация макетов

При локализации табличного документа у ячейки документа есть только одно локализуемое свойство «Текст» (Рисунок 6) . Его редактирование совпадает с редактированием свойств интерфейса (Рисунок 4). Помните, что если заполнение ячейки указано как «Шаблон», то внутри текста могут встречаться ссылки на параметры, чьё наименование не должно локализоваться.
Рисунок 6: Свойства ячейки табличного документа
При локализации макетов на СКД доступна локализация свойства «Заголовок» у полей, вычисляемых полей, параметров, вложенных схем, отчёта и отдельных группировок отчёта. Также доступна локализация поля «Представление» у вариантов отчётов и пользовательских полей.
4.Локализация справки и HTML-макетов

Платформа 1С предоставляет ограниченные возможности по редактированию HTML (Рисунок 7). Рекомендуется использовать встроенный редактор, так как макет, созданный в сторонних редакторах, может быть отображён с ошибками.
Рисунок 7: Редактор HTML
В отличие от остальных объектов, HTML ориентируется на свойство «Основной язык конфигурации», а не на язык конкретного пользователя, поэтому рекомендуется по возможности отказаться от использования HTML либо конструировать макет HTML в коде вызова.
5.Локализация объектов

У объектов и их реквизитов (в том числе стандартных) есть несколько свойств, используемых по умолчанию при отображении объекта или его реквизитов на форме (Рисунок 8):

  • Синоним
  • Представление объекта (в том числе Расширенное)
  • Представление списка (в том числе Расширенное)
  • Пояснение
Рисунок 8: Свойства Справочника
Для реквизитов объектов и значений Перечислений доступно только свойство «Синоним».
Локализация свойств аналогична локализации интерфейса (Рисунок 4).
6.Локализация текстов модулей

В модулях имеет смысл локализовать только те строки, которые будут так или иначе отображены пользователю: сообщения, предупреждения или программная замена текста интерфейса. Не рекомендуется локализовать текст, записываемый в ЖурналРегистрации, так как одно и то же сообщение в журнале может быть прочитано носителями различных языков.
Для формирования строки на определённом языке используется функция Нстр(<ИсходнаяСтрока>, <КодЯзыка>):

  • ИсходнаяСтрока (обязательный) — строка с представлением текста на различных языках. Формат строки представлен ниже.

  • КодЯзыка (необязательный) — код языка, на котором должен быть представлен текст. Если не указан, то используется язык, определённый для пользователя
    ИсходнаяСтрока представляет собой последовательность строк, разделенных знаком «;». Каждая такая строка должна соответствовать формату

    «код_языка = ʹТекст_на_указанном_языкеʹ»

    Рекомендуется для создания таких строк использовать «Конструктор строк на разных языках» (Рисунок 9). Использование конструктора строк позволит избежать ошибок, связанных с экранированием кавычек и многострочных текстов.
    Рисунок 9: Вызов конструктора строк на разных языках из контекстного меню
    Ниже представлено несколько примеров вызова функции Нстр(). Особое внимание нужно обратить на то, что знаки «ʹ» и «ʺ» внутри смысловой части строки экранируются повторением символа. Перенос строки обозначается символом «|».
    При локализации строк в коде необходимо быть крайне осторожными — в некоторых случаях строка одновременно может использоваться и для представления данных, и для какого-либо сравнения. В этом случае перед локализацией придётся произвести изменение логики кода.

    Следуйте рекомендациям локализации от 1С: https://its.1c.ru/db/v8std#content:761:hdoc
    7.Примеры функции НСтр()
    Правильное форматирование языков
    Текст = НСтр("ru = 'Русский текст'; en = 'English message'");
    Допустимое, но не рекомендуемое форматирование
    Текст = НСтр("ru = ""Русский текст""; en = ""English message""");
    Указан только один язык
    Текст = НСтр("ru = 'Русский текст'");	
    Форматирование текст с кавычками внутри
    Текст = НСтр("ru = 'Русский текст c ""кавычками"" внутри'; en = 'English message with ""quotes"" inside'");
    Форматирование многострочного текста
    Текст = НСтр("ru = 'Русский текст
                      |на нескольких
                      |строках'; en = 'English message
                      |on multiple
                      |lines'");
    Указание локали по умолчанию вторым параметром функции
    Текст = НСтр("ru = 'Русский текст'; en = 'English message'", "en");
    8.Нелокализируемые данные

    Платформой 1С не поддерживается локализация следующих объектов:

    • данные, включая предопределённые элементы справочников

    • изображения
    Если возникает необходимость локализовать эти объекты, то необходимо разработать собственные механизмы локализации. Вот несколько возможных путей разработки:

    • можно определить отображаемый язык текущего пользователя и получить нужные строки или пути к объектам через функцию НСтр()
    • можно воспользоваться обращением к элементу словаря по имени, например, БиблиотекаКартинок[«НаименованиеКартинки»] (PictureLib[«PictureName»])
    • можно завести у объектов табличную часть «Языки» с представлением строк на разных языках, заполнить её в пользовательском режиме, а затем обращаться к данным через процедуру ОбработкаПолученияПредставления() в модуле менеджера объекта
    9.Выгрузка конфигурации в приложение локализации

    Выгрузка и загрузка конфигурации доступна в меню «Конфигурация» (Рисунок 10).
    Рисунок 10: Меню "Конфигурация"
    Для выгрузки в приложение локализации используйте команду «Выгрузить конфигурацию в файлы...». Будет создана полная иерархическая структура объектов конфигурации, где каталоги обозначают тип объекта, файлы .xml являются описанием объектов или шаблонов форм файлы .html — макеты и справку, а файлы .bsl представляют код различных модулей. Также выгружаются изображения и двоичные данные.
    Рекомендуется производить выгрузку в каталог, чей системный путь занимает менее 30 символов.
    10.Работа с приложением локализации

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

    Работа с конфигурацией должна вестись в полностью отдельном проекте.
    Для создания нового проекта выберите меню «Проекты» и нажмите кнопку «Создать проект» (Рисунок 11).

    Рисунок 11: Создание проекта
    В открывшемся окне настроек укажите тип проекта как «1С: Выгрузка в файлы» (Рисунок 12)
    Рисунок 12: Тип проекта
    Укажите список языков, на которые будет осуществлен перевод (Рисунок 13). Важно: в списке языков не должно быть таких, которых нет в составе конфигурации. Кроме того, если исходный язык должен быть сохранён — его тоже надо добавить в список.
    Рисунок 13: Список языков проекта
    В списке файлов (Рисунок 14) нажмите кнопку «Загрузить папку» и выберите каталог, в который была выгружена конфигурация. По окончании загрузки можно приступать к переводу согласно основной документации.
    Рисунок 14: Список файлов
    11. Загрузка из ZIP

    Для удобства загрузки существует режим загрузки из ZIP. Для этого требуется сжать каталог выгруженных файлов 1С в архив (поддерживается только ZIP). В списке файлов (Рисунок 14) нажмите кнопку «Загрузить файл» и выберите свой архив. Система автоматически создаст задание на загрузку и распаковку файлов.
    12. Загрузка локализованной конфигурации

    В списке файлов найдите корневой каталог конфигурации и нажмите кнопку «Скачать». Откроется меню выбора языков (Рисунок 15). Выберите все необходимые языки
    Рисунок 15: Выбор языков
    Распакуйте скачанный архив в любой каталог. Для загрузки откройте Конфигуратор и воспользуйтесь командой «Загрузить конфигурацию из файлов...» (Рисунок 10). По окончании загрузки проведите проверку конфигурации.
    13. Сборка проекта

    Для сборки проекта полностью перейдите на вкладку «Сборка» (Рисунок 16). По нажатию на кнопку «Собрать проект» система предложит выбрать список языков для сборки (Рисунок 15), а затем запустит задание сборки. Задание выполняется в фоновом режиме, поэтому во время сборки можно продолжать работу с другими разделами.
    Рисунок 16: Сборки проекта
    По окончании сборки собранный файл можно получить по кнопке «Скачать». Дальнейшая работа идёт аналогично пункту 12.

    Для файлов сборки отображается дата завершения и коды языков. Если задание не завершено, кнопка «Скачать» недоступна, а рядом отображается статус сборки. Во время активной сборки нельзя запустить ещё одну. Также не рекомендуется производить переводы или другие операции с файлами и настройками проекта во время сборки.

    Наш сервис alingvo позволяет настроить т.н. непрерывную локализацию, когда файлы из проекта передаются на перевод и собираются обратно по определенному расписанию.