TRANS: The rules to print the time in the localized language.
Example syntax:
time(h, 15) => a quarter to hour(h) am_pm(h) |
The left hand side of the rule defines a pattern with a variable 'h' and a
value '15'.
The right hand side, when applied, will use the text "a quarter to " and call
the first rule matching hour(h) after substituting the variable 'h' by its value,
and call the rule matching am_pm(h).
Internal spaces are significant on the right side of a rule. In calls, all
arguments which are not numbers are considered to be variables. The rule parser
is very simple and will let many syntax errors go ignored.
A rule ends with the character '|'.
The character '_' is a anonymous variable.
The character '#' can be used to concatenate two text fragments. For instance:
plural(1) => |
plural(_) => s |
hour(h) => number(h) hour#plural(h) |
Use '\#' to use a # character, for instance in a pango color
tag like <span foreground="\#FF0055">
You can put range conditions on firing a rule, with the syntax [var1 < var2] or
[var1 < var2 < var3]. For instance:
hours(h) [h < 12] => in the morning |
hours(h) [12 < h < 18] => in the afternoon |
hours(_) => in the night |
These rules will be called with the root pattern "time(hour, minute)", with the
variable 'hour' bound to the current hour and the variable 'minute' to the
current minute.
Order of rules is important. Rules are tried from first to last. So most precise
rule must be placed first in the list.
You can validate your set of rules by running the command line:
python timewriter.py LANG
You should use pango markup to respect the same colors as for the clock hands.
Look at the README file from the activity for explanations on how to create
rules.
time(0, 0) => <span foreground="\#005FE4">hour(0)</span> |
time(h, 0) => <span foreground="\#005FE4">hour(h)</span> o'clock am_pm(h) |
time(h, m) [m < 31] => <span foreground="\#00B20D">min(m)</span> past <span foreground="\#005FE4">hour(h)</span> am_pm(h) |
time(h, m) [30 < m] => <span foreground="\#00B20D">min(m)</span> to <span foreground="\#005FE4">hour1(h)</span> am_pm(h) |
min(1) => one minute |
min(2) => two minutes |
min(3) => three minutes |
min(4) => four minutes |
min(5) => five minutes |
min(6) => six minutes |
min(7) => seven minutes |
min(8) => eight minutes |
min(9) => nine minutes |
min(10) => ten minutes |
min(11) => eleven minutes |
min(12) => twelve minutes |
min(13) => thirteen minutes |
min(14) => fourteen minutes |
min(15) => a quarter |
min(16) => sixteen minutes |
min(17) => seventeen minutes |
min(18) => eighteen minutes |
min(19) => nineteen minutes |
min(20) => twenty minutes |
min(21) => twenty-one minutes |
min(22) => twenty-two minutes |
min(23) => twenty-three minutes |
min(24) => twenty-four minutes |
min(25) => twenty-five minutes |
min(26) => twenty-six minutes |
min(27) => twenty-seven minutes |
min(28) => twenty-eight minutes |
min(29) => twenty-nine minutes |
min(30) => half |
min(31) => twenty-nine minutes |
min(32) => twenty-eight minutes |
min(33) => twenty-seven minutes |
min(34) => twenty-six minutes |
min(35) => twenty-five minutes |
min(36) => twenty-four minutes |
min(37) => twenty-three minutes |
min(38) => twenty-two minutes |
min(39) => twenty-one minutes |
min(40) => twenty minutes |
min(41) => nineteen minutes |
min(42) => eighteen minutes |
min(43) => seventeen minutes |
min(44) => sixteen minutes |
min(45) => a quarter |
min(46) => fourteen minutes |
min(47) => thirteen minutes |
min(48) => twelve minutes |
min(49) => eleven minutes |
min(50) => ten minutes |
min(51) => nine minutes |
min(52) => eight minutes |
min(53) => seven minutes |
min(54) => six minutes |
min(55) => five minutes |
min(56) => four minutes |
min(57) => three minutes |
min(58) => two minutes |
min(59) => one minute |
min(60) => sixty minutes |
hour(0) => midnight |
hour(1) => one |
hour(2) => two |
hour(3) => three |
hour(4) => four |
hour(5) => five |
hour(6) => six |
hour(7) => seven |
hour(8) => eight |
hour(9) => nine |
hour(10) => ten |
hour(11) => eleven |
hour(12) => noon |
hour(13) => one |
hour(14) => two |
hour(15) => three |
hour(16) => four |
hour(17) => five |
hour(18) => six |
hour(19) => seven |
hour(20) => eight |
hour(21) => nine |
hour(22) => ten |
hour(23) => eleven |
hour1(0) => one |
hour1(1) => two |
hour1(2) => three |
hour1(3) => four |
hour1(4) => five |
hour1(5) => six |
hour1(6) => seven |
hour1(7) => eight |
hour1(8) => nine |
hour1(9) => ten |
hour1(10) => eleven |
hour1(11) => noon |
hour1(12) => one |
hour1(13) => two |
hour1(14) => three |
hour1(15) => four |
hour1(16) => five |
hour1(17) => six |
hour1(18) => seven |
hour1(19) => eight |
hour1(20) => nine |
hour1(21) => ten |
hour1(22) => eleven |
hour1(23) => midnight |
am_pm(h) [ h < 12] => AM |
am_pm(_) => PM