Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Мультиязычность проекта  (Прочитано 2583 раз)

Лиза

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Мультиязычность проекта
« : 15 Октября 2026, 17:50:06 »
Добрый день, может у кого-то есть интересные идеи реализации мультиязычности проекта.
Вариант привязки переменной языка к Var или VarEx не подходит, я их задействую для видимости и цвета.
Есть идея перебора по именам элементов проекта, но тоже как-то трудозатратно. Существуют ли еще способы?
« Изменён: 15 Октября 2026, 18:01:22 от Simple_Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1428
    • Просмотр профиля
Re: Мультиязычность проекта
« Ответ #1 : 16 Октября 2026, 11:11:20 »
Здравствуйте.

Цитировать
Есть идея перебора по именам элементов проекта
Да, можно использовать этот вариант. Например, через скрипт изменять текст, подписи, подсказки объектов и т.д. Следует учитывать, что изменить текст сообщений не получится даже через скрипты – они всегда отображаются в том же виде, в котором были добавлены в БД. Также, изменение любых свойств объектов будет отображаться на всех клиентах. К примеру, если на одном клиенте вызвали скрипт изменения языка, то эти изменения отобразятся на всех клиентах.

pan2000

  • Постоялец
  • ***
  • Сообщений: 240
    • Просмотр профиля
Re: Мультиязычность проекта
« Ответ #2 : 19 Октября 2026, 08:58:02 »
Почитываю иногда форум и до сих пор поражаюсь как изощрятся люди при решении простейших задач.

   Здравствуйте.

  Мультиязычная поддержка минимально должна распространяться на простые объекты, шаблоны (все экземпляры изменяются одинаковым образом), шаблонные окна и сообщения пользователя.
  Для описания мультиязычной поддержки используется текстовый файл. Первая строка содержит названия поддерживаемых языков. Далее следуют группы, включающие строку с именем и свойством объекта простого или входящего в шаблон или номер строки формата сообщения. Далее в группу входит несколько строк (да хоть 100, если не устанете их редактировать) с вариантами текста на различных языках. Простые объекты модифицируются непосредственно, объекты шаблона посредством единой строки-параметра, а сообщения просто заносятся в глобальный массив.
  Поддерживаются следующие классы/объекты TM_Control (Caption, Hint), TM_Window (Title), TM_Field и TM_Text (Text), TM_Button (States[].Caption), TM_ComboBox (Clear, AddItem()), TM_Table (Title, запись столбца, запись строки), шаблоны и шаблонные окна.
  Создание мультиязычной поддержки достаточно трудозатратно и содержит много рутины.
  Пример на 3-языка и примерно 1000 объектов во вложении. Для оценки временных характеристик большего проекта можно просто размножить содержимое текстового файла.
В проекте используется функция FormatStr для разделения сообщения на текстовую часть и подставляемые значения, по мотивам:
Реализовал свою простенькую функцию FormatStr.