# 3-letter language code as used in user dictionaries

[header]
language = FIF
charset = utf-8

[data]
#
# replace slash with 100ms pause to avoid slash being read out literally (Bug JIRA: GI-704)
!(\D\d+)\/(\D\d+)!    -->   " $1 \\pause=100\\ $2 "
!(\D[-]\d+)\/(\D\d+)!    -->   " $1 \\pause=100\\ $2 "
!(\D\d+)\/(\d+)!    -->   " $1 \\pause=100\\ $2 "
!(\D[-]\d+)\/(\d+)!    -->   " $1 \\pause=100\\ $2 "
!(\D\d+)\/(\D[-]\d+)!    -->   " $1 \\pause=100\\ $2 "
!(\D[-]\d+)\/(\D[-]\d+)!    -->   " $1 \\pause=100\\ $2 "
#
# Ignore dot after a capital letter following one or more digits
!(\s+[A-Z]\d+)+(\.)!   -->   "$1 $2"
#
#Important : \b (word boundary) only works with western characters, e.g. ä is also matched by \b
#
# Prevent next rule for allative to be executed if "kadulle" is in the sentence
!(\S+)(tie|kuja|aukio|tori|harju|esplanadi|katu|raitti|lenkki|polku|kaari|ranta|rinne)\b(.*?\bkadulle\b)!i   -->   "$1$2XNOALLX$3"
!(\S+väylä)(\s+)(.*?\bkadulle\b)!i   -->   "$1XNOALLX$2$3"
!(Iso|Vanha|Uusi|Pieni)(\s+)(.*?\bkadulle\b)!   -->   "$1XNOALLX$2$3"
!(Eteläi|Pohjoi|Itäi|Länti)(nen\s+)(.*?\bkadulle\b)!   -->   "$1XNOALLX$2$3"
# Prevent next rule for allative to be executed if the streetname is following "suuntaan"
!\b(suuntaan\s+)((\S+\s+){0,1})(\S+)(tie|kuja|aukio|tori|harju|esplanadi|katu|raitti|lenkki|polku|kaari|ranta|rinne)\b!i   -->   "$1$2$4$5XNOALLX"
!\b(suuntaan\s+)((\S+\s+){0,1})(\S+väylä)!i   -->   "$1$2$4XNOALLX"
!\b([Ss]uuntaan\s+)(Iso|Vanha|Uusi|Pieni)\b!   -->   "$1$2XNOALLX"
#
# Replace the Finnish variations for 'street', if at the end of a word to use the allative case.
!\b(käänny|jatka\s+suoraan)(.*?\b)(\S+)(tie|kuja|aukio|tori|harju|esplanadi)\b!i   -->   "$1$2$3$4lle"
!\b(käänny|jatka\s+suoraan)(.*?\b)(\S+)väylä([\s+\.,;\!\?])!i   -->   "$1$2$3väylälle$4"
!\b(käänny|jatka\s+suoraan)(.*?\b)(\S+)katu\b!i   -->   "$1$2$3kadulle"
!\b(käänny|jatka\s+suoraan)(.*?\b)(\S+)raitti\b!i   -->   "$1$2$3raitille"
!\b(käänny|jatka\s+suoraan)(.*?\b)(\S+)lenkki\b!i   -->   "$1$2$3lenkille"
!\b(käänny|jatka\s+suoraan)(.*?\b)(\S+)polku\b!i   -->   "$1$2$3polulle"
!\b(käänny|jatka\s+suoraan)(.*?\b)(\S+)kaari\b!i   -->   "$1$2$3kaarelle"
!\b(käänny|jatka\s+suoraan)(.*?\b)(\S+)ranta\b!i   -->   "$1$2$3rannalle"
!\b(käänny|jatka\s+suoraan)(.*?\b)(\S+)rinne\b!i   -->   "$1$2$3rinteelle"
!\b([Kk]äänny|[Jj]atka\s+suoraan)(.*?\b)(Iso|Vanha)(\s+)!   -->   "$1$2$3lle$4"
!\b([Kk]äänny|[Jj]atka\s+suoraan)(.*?\b)Uusi(\s+)!   -->   "$1$2Uudelle$3"
!\b([Kk]äänny|[Jj]atka\s+suoraan)(.*?\b)Pieni(\s+)!   -->   "$1$2Pienelle$3"
!\b([Kk]äänny|[Jj]atka\s+suoraan)(.*?\b)(Eteläi|Pohjoi|Itäi|Länti)nen(\s+)!   -->   "$1$2$3selle$4"
#
!\b(suuntaa\s+kohti\s+(itää|pohjoista|koillista|luodetta|etelää|kaakkoa|lounasta|länttä)\s+)((\S+\s+){0,1})(\S+)(tie|kuja|aukio|tori|harju|esplanadi)\b!i   -->   "$1$3$5$6lle"
!\b(suuntaa\s+kohti\s+(itää|pohjoista|koillista|luodetta|etelää|kaakkoa|lounasta|länttä)\s+)((\S+\s+){0,1})(\S+)väylä([\s+\.,;\!\?])!i   -->   "$1$3$5väylälle$6"
!\b(suuntaa\s+kohti\s+(itää|pohjoista|koillista|luodetta|etelää|kaakkoa|lounasta|länttä)\s+)((\S+\s+){0,1})(\S+)katu\b!i   -->   "$1$3$5kadulle"
!\b(suuntaa\s+kohti\s+(itää|pohjoista|koillista|luodetta|etelää|kaakkoa|lounasta|länttä)\s+)((\S+\s+){0,1})(\S+)raitti\b!i   -->   "$1$3$5raitille"
!\b(suuntaa\s+kohti\s+(itää|pohjoista|koillista|luodetta|etelää|kaakkoa|lounasta|länttä)\s+)((\S+\s+){0,1})(\S+)lenkki\b!i   -->   "$1$3$5lenkille"
!\b(suuntaa\s+kohti\s+(itää|pohjoista|koillista|luodetta|etelää|kaakkoa|lounasta|länttä)\s+)((\S+\s+){0,1})(\S+)polku\b!i   -->   "$1$3$5polulle"
!\b(suuntaa\s+kohti\s+(itää|pohjoista|koillista|luodetta|etelää|kaakkoa|lounasta|länttä)\s+)((\S+\s+){0,1})(\S+)kaari\b!i   -->   "$1$3$5kaarelle"
!\b(suuntaa\s+kohti\s+(itää|pohjoista|koillista|luodetta|etelää|kaakkoa|lounasta|länttä)\s+)((\S+\s+){0,1})(\S+)ranta\b!i   -->   "$1$3$5rannalle"
!\b(suuntaa\s+kohti\s+(itää|pohjoista|koillista|luodetta|etelää|kaakkoa|lounasta|länttä)\s+)((\S+\s+){0,1})(\S+)rinne\b!i   -->   "$1$3$5rinteelle"
!\b([Ss]uuntaa\s+kohti\s+(itää|pohjoista|koillista|luodetta|etelää|kaakkoa|lounasta|länttä)\s+)(Iso|Vanha)(\s+)!   -->   "$1$3lle$4"
!\b([Ss]uuntaa\s+kohti\s+(itää|pohjoista|koillista|luodetta|etelää|kaakkoa|lounasta|länttä)\s+)Uusi(\s+)!   -->   "$1Uudelle$3"
!\b([Ss]uuntaa\s+kohti\s+(itää|pohjoista|koillista|luodetta|etelää|kaakkoa|lounasta|länttä)\s+)Pieni(\s+)!   -->   "$1Pienelle$3"
#
# Undo change to prevent above rules for allative case to kick in.
!(\S+)XNOALLX!   -->   "$1"
#
# replace roman number by allativ case of number if following the preposition "käänny"
# special treament for V, as this can be followed by e.g. ä, which is matched by \b
/(\bkäänny\b.*?\b)I\b/i   -->   "$1yhdelle"
/(\bkäänny\b.*?\b)II\b/i   -->   "$1kahdelle"
/(\bkäänny\b.*?\b)III\b/i   -->   "$1kolmelle"
/(\bkäänny\b.*?\b)IV\b/i   -->   "$1neljälle"
/(\bkäänny\b.*?\b)V([\s+\.,;\!\?])/i   -->   "$1viidelle$2"
/(\bkäänny\b.*?\b)VI\b/i   -->   "$1kuudelle"
/(\bkäänny\b.*?\b)VII\b/i   -->   "$1seitsemälle"
/(\bkäänny\b.*?\b)VIII\b/i   -->   "$1kahdeksalle"
/(\bkäänny\b.*?\b)IX\b/i   -->   "$1yhdeksälle"
/(\bkäänny\b.*?\b)X\b/i   -->   "$1kymmenelle"
/(\bkäänny\b.*?\b)XI\b/i   -->   "$1yhdelletoista"
/(\bkäänny\b.*?\b)XII\b/i   -->   "$1kahdelletoista"
/(\bkäänny\b.*?\b)XIII\b/i   -->   "$1kolmelletoista"
/(\bkäänny\b.*?\b)XIV\b/i   -->   "$1neljälletoista"
/(\bkäänny\b.*?\b)XV\b/i   -->   "$1viidelletoista"
/(\bkäänny\b.*?\b)XVI\b/i   -->   "$1kuudelletoista"
/(\bkäänny\b.*?\b)XVII\b/i   -->   "$1seitsemälletoista"
/(\bkäänny\b.*?\b)XVIII\b/i   -->   "$1kahdeksalletoista"
/(\bkäänny\b.*?\b)XIX\b/i   -->   "$1yhdeksälletoista"
/(\bkäänny\b.*?\b)XX\b/i   -->   "$1kahdellekymmenelle"
#
# Avoid pronunciation of highway numbers as ordinals, when following moottoritielle, by adding a small pause after the numbers
/\b(moottoritie\S*)(\s+|\s*\x1b.+?\\)(\s*[a-z]?\d+\s+)/i   -->   "$1$2$3\x1b\\pause=1\\ "
/\b(moottoritie\S*)(\s+|\s*\x1b.+?\\)(\s*[a-z]?\d+)\/([a-z]?\d+\s+)/i   -->   "$1$2$3 \x1b\\pause=150\\ $4\x1b\\pause=50\\ "
#
# Avoid that slash is read literally, and add phrase boundary
!(E\d+)/(A\d+)! --> "$1 \\pause=100\\ $2 "
!(E\d+)/(\d+)! --> "$1 \\pause=100\\ $2 "
!(E\d+)/(E\d+)! --> "$1 \\pause=100\\ $2 "

# avoid '.' at the end when an audio file is inserted
!(audio=\".*\"\\)+(\.)! --> "$1/+#/+"
