Alterator/shell: различия между версиями

Материал из ALT Linux Wiki
(Import from freesource.info)
 
Строка 33: Строка 33:
Перевод осуществляется в зависимости от значения входного параметра language. Если домен не указан, используется значение глобальной переменной po_domain.
Перевод осуществляется в зависимости от значения входного параметра language. Если домен не указан, используется значение глобальной переменной po_domain.


=====write_error=====
''write_error <сообщение>''
''write_error <сообщение>''
вывод сообщения об ошибке.  
вывод сообщения об ошибке.  
Строка 63: Строка 64:
''write_enum''
''write_enum''
трансляция потока в вывод списка значений для параметра перечислимого типа.
трансляция потока в вывод списка значений для параметра перечислимого типа.


Работает аналогично write_enum_item, но позволяет вывести сразу несколько вариантов.
Работает аналогично write_enum_item, но позволяет вывести сразу несколько вариантов.
Cписок принимается на стандартный ввод в виде строк вида: ''<ключ><разделитель><метка>''
Cписок принимается на стандартный ввод в виде строк вида: ''<ключ><разделитель><метка>''
Вид <разделителя> управляется при помощи переменной среды IFS.
Вид <разделителя> управляется при помощи переменной среды IFS.
''write_table_item <параметр1> <значение1> <параметр2> <значение2> ...''
вывод информации для строки таблицы.


==== Отладка ====
==== Отладка ====
write_debug <формат> [<параметры...>]
write_debug <формат> [<параметры...>]
если выставленая переменная среды DEBUG, то печатается отладочная информация, иначе никакого вывода не происходит. Параметры такие же как и у функции printf.
если выставленая переменная среды DEBUG, то печатается отладочная информация, иначе никакого вывода не происходит. Параметры такие же как и у функции printf.

Версия от 16:31, 1 сентября 2008

Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


alterator-sh-functions

Простейший бакенд выглядит следующим образом:

#!/bin/sh

alterator_api_version=1
po_domain="alterator-text"

. alterator-sh-functions

on_message()
{
    case "$in_action" in
         read) write_string_param name value ;;
    esac
}

message_loop on_message

message_loop - основной цикл работы бакенда, on_message - вызывается при каждом новом запросе к бакенду. Входные параметры передаются через глобальные переменные с префиксом in_ (например $in_action). Результатом работы функции on_message является печать выходных параметров постредством функций с префиксом write_.

Имена входных и выходных параметров могут состоять только из латинских букв, цифр и символа подчёркивания. Использование других символов недопустимо.

alterator_api_version - версия API, переменная обязательно должна определяться во всех новых бакендах. Текущее значение версии - 1.

Вывод

_ <строка> [<домен>] перевод строки

Перевод осуществляется в зависимости от значения входного параметра language. Если домен не указан, используется значение глобальной переменной po_domain.

write_error

write_error <сообщение> вывод сообщения об ошибке.

После вывод ошибки обязательно должна стоять инструкция для выхода из функции.

write_string_param <имя> <значение> вывод значения параметра строкового типа.

write_bool_param <имя> <значение> вывод значения параметра логического типа. <значения> отличные от yes, no, on, true или 1 (в любом регистре) считаются ложными.

write_enum_item <ключ> [<метка>] вывод элемента списка значений для параметра перечислимого типа.

Вывод списка значений перечислимого типа обрабатывается отдельно. Недопустимо смешивать вывод значений перечислимого типа и других.

<ключ> -- имя, один из вариантов текущего значения перечислимого типа которым пользуется бакенд . Вывод текущего значения осуществляется в отдельной секции при помощи функции write_string_param.

<метка> -- описание значения, выводимое пользователю. Если метка не задана, то она считается равной <ключу>.

Пример:

list) write_enum_item "a" "variant a"
          write_enum_item "b" "variant b"
          ;;
   read)
         write_string_param "enum" "a"  ;; #вывод текущего значения параметра по имени enum
   write)
        ... $in_enum ... ;; # обработка варианта выбранного пользователем, переменная равна или a или b

write_enum трансляция потока в вывод списка значений для параметра перечислимого типа.


Работает аналогично write_enum_item, но позволяет вывести сразу несколько вариантов. Cписок принимается на стандартный ввод в виде строк вида: <ключ><разделитель><метка> Вид <разделителя> управляется при помощи переменной среды IFS.

write_table_item <параметр1> <значение1> <параметр2> <значение2> ... вывод информации для строки таблицы.

Отладка

write_debug <формат> [<параметры...>] если выставленая переменная среды DEBUG, то печатается отладочная информация, иначе никакого вывода не происходит. Параметры такие же как и у функции printf.