Функции управления

Типы данных

В языке программирования CONTROL для поддержки многоязычности используются следующие типы данных:

  • langString
  • dyn_langString
  • dyn_dyn_langString

Эти типы данных поддерживаются следующими операторами:

= == != []

Оператор индекса [ ] (начинается с 1) может использоваться только для чтения. Изменение содержания переменной типа langstring с помощью данного оператора невозможно. При применении оператора индекса к переменной типа langstring возвращается переменная типа string. Для изменения содержимого переменной langString используется функция setLangString(). Если переменная langString присваивается переменной string, запись на текущем языке из переменной langString присваивается переменной string.

ЗначокПРИМЕР

Предположим, поддерживаются три языка: s[1]…s[3]. Активным языком в данном примере является язык с индексом 1. В этом случае результатом первой отладочной инструкции — DebugN(-a,-b)  в данном примере будет [«немецкий» «венгерский» «английский»] [«» «» «»].

Присвоение значения переменной a[1] невозможно, поскольку оператор присвоения поддерживает только операции чтения.

main()
{
   langString a, b;
   dyn_string s;
   string text;
   s[1] = «Немецкий»;
   s[2] = «Венгерский»;
   s[3] = «Английский»;
   a = s;
   DebugN(a, b );
   text = a[2];
   DebugN(text); // [«English»]
   a[1] = «anything»; // Ошибка, но в средстве просмотра журналов сообщения отсутствуют
   text = «Активный язык: » + a;
   DebugN(text); /-> [«Активный язык: венгерский»]
   a = b;
   if ( a == b ) …
  if ( a != b ) …
}

ПРИМЕЧАНИЕ

Абсолютный индекс языков в «КАСКАД Цифра» (см. файловый поиск) не зависит от относительного индекса языков проекта.

Функции управления

В следующей таблице приводятся доступные функции, связанные с поддержкой многоязычности:

errorText()getActiveLang()
getCatStr()getDictionary()
getGlobalLangId()getLangIdx()
getLocale()getMetaLang()
getNoOfLangs()langEditor()
mergeDictionary()readDictionary()
setLangString()switchLang()
translate()writeDictionary()

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *