Банк скриптов для голосового движка Festival Wiki
Advertisement

Скрипт для склонения слов по числительному, к которому они примыкают. Например, 1 час, 2 часа, 3 часа, 10 часов и т.д.

pluralform.php

#!/usr/bin/php
<?

function pluralForm($n, $form1, $form2, $form5)
{
  $n = abs($n) % 100;
  $n1 = $n % 10;
  if ($n > 10 && $n < 20) return $form5;
  if ($n1 > 1 && $n1 < 5) return $form2;
  if ($n1 == 1) return $form1;
  return $form5;
 }

 echo pluralForm($argv[1], $argv[2], $argv[3], $argv[4]);
?>

Функция pluralForm была найдена где-то на просторах сети, правда автор остался неизвестен. Внесем свой вклад в общее дело, переписав скрипт на bash'e.

pluralform.sh

 #!/bin/bash
 n=$(($1 % 100))
 n1=$(($n % 10))
 if [ $n -gt 10 -a $n -lt 20 ]; then echo $4;
 elif [ $n1 -gt 1 -a $n1 -lt 5 ]; then echo $3;
 elif [ $n1 -eq 1 ]; then echo $2;
 else echo $4
 fi

Не забываем дать права выполнения скрипту:

$ chmod u+x pluralform.sh

Пример использования:

$ ./pluralform.sh 2 штука штуки штук
штуки
Advertisement