Локализация
Локализация приложения позволяет пользователю видеть надписи в интерфейсе приложения на том языке, который он использует для работы (порядок определения языка локализации). Подобные надписи могут располагаться на таких элементах, как:
- команды меню;
- заголовки кнопок, полей, переключателей и т. д.;
- строки, формируемые алгоритмами на встроенном языке.
Полный список компонентов, поддерживающих подстановку готовых локализованных строк, можно посмотреть здесь.
Языки локализации и язык по умолчанию
Чтобы локализация приложения стала возможной, в описании проекта должны быть заданы языки локализации и один из них должен быть указан как язык по умолчанию. Например:
Ид: 64d5452a-9771-4623-b589-c440739364a4
РежимСовместимости: 5.0
Поставщик: e1c
Имя: DemoProject
Версия: 1.0
Представление: "Demo CRM"
ЯзыкиЛокализации:
- Русский
- Английский
ЯзыкПоУмолчанию: Русский
Если не указать ни одного языка, это будет означать, что проект не нуждается в локализации. В качестве языков локализации можно выбрать только те, которые являются значениями перечисления Язык
.
Элемент проекта вида «ЛокализованныеСтроки»
Используйте элемент проекта вида ЛокализованныеСтроки для хранения строк, которые должны быть переведены на другие языки. Эти строки могут использоваться в различных элементах и модулях проекта.
Чтобы создать элемент проекта вида ЛокализованныеСтроки, выполните след ующие действия:
-
Щелкните правой кнопкой мыши по имени нужной подсистемы и выберите Новый ⟶ Элемент проекта в контекстном меню.
-
В открывшемся меню нажмите Локализованные Строки.
-
Введите имя создаваемого элемента проекта.
-
«1С:Исполнитель» предложит вам добавить файлы локализации на других языках. Нажмите Создать, чтобы автоматически добавить раздел локализации к проекту. Если вы хотите создать этот раздел позднее, нажмите Закрыть.
Элемент проекта вида ЛокализованныеСтроки содержит имена локализуемых строк и их значения на языке по умолчанию. Блоки идентификаторов разделены на две секции:
-
Строки
Строки можно использовать в описании элементов проекта и во встроенном языке.
-
Шаблоны
Шаблоны можно использовать только во встроенном языке. В них можно подставлять значения переменных.
Пример:
ВидЭлемента: ЛокализованныеСтроки
Ид: d0adc076-d030-4546-bd1a-8b497668b0fc
Имя: ЛокализованныеСтроки
ОбластьВидимости: ВПроекте
Строки:
Мероприятия: Мероприятия
Задачи: Задачи
События: События
Событие: Событие
Роль: Роль
Шаблоны:
ТекущееВремя: "Текущее время: %0"
СозданаЗадача: "Создана задача \"$0\""
СозданоСобытие: "Создано событие \"$0\""
Вы можете указать нужные строки как в YAML-файле, так и в палитре свойств элемента проекта вида ЛокализованныеСтроки.
Раздел проекта «Локализация»
Строки, которые должны быть локализованы, указываются в элементе проекта ЛокализованныеСтроки. Чтобы сохранить в проекте их значения на другом языке (язык может быть только тот, который вы указали в описании проекта в свойстве ЯзыкиЛокализации), вы должны добавить к проекту раздел Локализация. Если вы не сделали этого при создании элемента проекта вида ЛокализованныеСтроки, вы можете добавить этот раздел следующим образом:
-
Щелкните правой кнопкой мыши по имени нужной подсистемы и выберите Новый ⟶ Локализации в контекстном меню.
-
Добавьте язык локализации, на который нужно перевести строки. Для этого щелкните правой кнопкой мыши по разделу Локализация и нажмите Новый ⟶ Язык локализации.
-
Выберите язык локализации в открывшемся меню.
-
Создайте новый элемент локализации. Щелкните правой кнопкой мыши по разделу с языком локализации и выберите Новый ⟶ Элемент локализации.
-
Введите имя элемента локализации. Оно должно совпадать с именем элемента проекта вида ЛокализованныеСтроки. «1С:Исполнитель» отобразит список существующих элементов проекта типа Локализованные Строки, из которого вы можете выбрать нужное имя.
В результате структура проекта будет выглядеть следующим образом:
Элемент локализации должен содержать только секции с именами и значениями локализуемых строк. Например:
Строки:
Мероприятия: Activities
Задачи: Tasks
События: Events
Событие: Event
Роль: Role
Шаблоны:
ТекущееВремя: "Current time: %0"
СозданаЗадача: "Task \"$0\" created"
СозданоСобытие: "Event \"$0\" created"