Provide a general method for adding additional languages in festival
This general method in this patch was written by Sergio Oller and
merged with earlier patches of lib_languages.scm and russianpatch.diff.
The russianpatch.diff was written by Sergey B Kirpichev.
The merging was performed by Peter Drysdale.

--- festival-2.1~release.orig/src/main/festival_main.cc
+++ festival-2.1~release/src/main/festival_main.cc
@@ -105,7 +105,7 @@ static void festival_main(int argc, char
 	"              are printed (default if stdin not a tty)\n"+
 	"--language <string>\n"+
         "              Run in named language, default is\n"+
-	"              english, spanish and welsh are available\n"+
+	"              english, spanish, russian, welsh and others are available\n"+
 	"--server      Run in server mode waiting for clients\n"+
 	"              of server_port (1314)\n"+
 	"--script <ifile>\n"+
--- festival-2.1~release.orig/lib/languages.scm
+++ festival-2.1~release/lib/languages.scm
@@ -2,7 +2,7 @@
 ;;;                                                                       ;;
 ;;;                Centre for Speech Technology Research                  ;;
 ;;;                     University of Edinburgh, UK                       ;;
-;;;                       Copyright (c) 1996,1997                         ;;
+;;;                       Copyright (c) 1996,2010                         ;;
 ;;;                        All Rights Reserved.                           ;;
 ;;;                                                                       ;;
 ;;;  Permission is hereby granted, free of charge, to use and distribute  ;;
@@ -31,90 +31,145 @@
 ;;;                                                                       ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;
-;;;  Specification of voices and some major choices of synthesis
+;;;               Author: Sergio Oller
+;;;                 Date: January 2010 
 ;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;
-;;;  This should use some sort of database description for voices so
-;;;  new voices will become automatically available.
+;;;     Language definitions, now it works similar to voice definitions.
 ;;;
 
-(define (language_british_english)
-"(language_british_english)
-Set up language parameters for British English."
-  (require 'voices)
-  ;;  Will get more elaborate, with different choices of voices in language
-
-  (set! male1 voice_rab_diphone)
-  (set! male2 voice_don_diphone)
-  (if (symbol-bound? 'voice_gsw_diphone)
-      (set! male3 voice_gsw_diphone))
-  (if (symbol-bound? 'voice_gsw_450)
-      (set! male4 voice_gsw_450))
 
-  (male1)
-  (Parameter.set 'Language 'britishenglish)
-)
-
-(define (language_american_english)
-"(language_american_english)
-Set up language parameters for Aemerican English."
-
-  (if (symbol-bound? 'voice_kal_diphone)
-      (set! female1 voice_kal_diphone))
-  (set! male1 voice_ked_diphone)
+(defvar system-language-path '("/usr/share/festival/languages/"))
 
-  (male1)
-  (Parameter.set 'Language 'americanenglish)
+(defvar language-path 
+  (remove-duplicates
+   (append (mapcar (lambda (d) (path-append d "languages/")) load-path)
+	   (mapcar (lambda (d) (path-as-directory d)) system-language-path)
+	   ))
+
+  "language-path
+   List of places to look for languages. If not set it is initialised from
+   load-path by appending \"languages/\" to each directory with 
+   system-language-path appended.")
+
+(defvar language-locations ()
+  "language-locations
+   Association list recording where languages were found.")
+
+(defvar language-location-trace nil
+  "language-location-trace
+   Set t to print language locations as they are found")
+
+(defvar Language_aliases nil
+  "Internal variable containing an association of language name
+   aliases such as english-> british_english.")
+
+(define (language.names.add language aliases)
+"(language.names.add LANGUAGE ALIASES)
+Describe a language to the systen. LANGUAGE should be atomic name, that
+conventionally will have language_ prepended to name the basic selection
+function. ALIASES is a list of names for that language."
+  (let (alias nil)
+
+       (while aliases
+        (set! alias (car aliases))
+        (cond ( (not (assoc alias Language_aliases) nil)
+	         (set! Language_aliases  (cons (cons alias language) Language_aliases))
+              )
+              (t
+                 (set-cdr! (assoc alias Language_aliases) language)
+              )
+        )
+        (set! aliases (cdr aliases))
+       )
+  )
 )
 
-(define (language_scots_gaelic)
-"(language_scots_gaelic)
-Set up language parameters for Scots Gaelic."
-  (error "Scots Gaelic not yet supported.")
-
-  (Parameter.set 'Language 'scotsgaelic)
+(define (language-location name dir doc)
+  "(language-location NAME DIR DOCSTRING)
+   Record the location of a language. Called for each language found on language-path.
+   Can be called in site-init or .festivalrc for additional languages which
+   exist elsewhere."
+  (let ((func_name (intern name))
+	)
+
+    (set! name (intern name))
+    (set! language-locations (cons (cons name dir) language-locations))
+    (eval (list 'autoload func_name dir doc))
+    (if language-location-trace
+	(format t "Language: %s %s.scm\n" name dir)
+	)
+    )
+  )
+
+
+(define (language.list)
+"(language.list)
+List of all (potential) languages in the system.  This checks the language-location
+list of potential languages found be scanning the language-path at start up time."
+   (mapcar car Language_aliases))
+
+(define (language.select name)
+"(language.select LANG)
+Call function to set up language LANG.  This is normally done by 
+prepending language_ to LANG and call it as a function."
+       (set! lang (cdr(assoc name Language_aliases)))
+       (if (string-equal lang nil)
+           (set! lang name)
+       )
+   (cond 
+      ((boundp (intern(string-append "language_" lang))) ;;if function "language_lang" exists, evaluate it
+          (eval (list (intern (string-append "language_" lang))))
+      )
+      ((string-matches lang "klingon")
+        (print "Klingon is not supported yet, using English:")
+        (language.select 'english)
+      )
+      (t ;;else, print a message with available languages
+        (print "Language not installed. The installed languages are:")
+        (language.list)
+      )
+   )
+nil
 )
 
-(define (language_welsh)
-"(language_welsh)
-Set up language parameters for Welsh."
 
-  (set! male1 voice_welsh_hl)
-
-  (male1)
-  (Parameter.set 'Language 'welsh)
-)
+(define (search-for-languages)
+  "(search-for-languages)
+   Search down language-path to locate languages."
+
+  (let ((dirs language-path)
+	(dir nil)
+	languages language
+	name 
+	)
+    (while dirs
+     (set! dir (car dirs))
+       (setq languages (directory-entries dir t))
+       (while languages
+         (set! language (car languages))
+         (if (string-matches language "language_.*scm$")
+                (begin
+                 (load (path-append dir language))
+	         (language-location (path-basename language) (path-append dir (path-basename language)) "language found")
+	        )
+         ) 
+       (set! languages (cdr languages))
+      )
+     (set! dirs (cdr dirs))
+     )
+    )
+  )
 
-(define (language_castillian_spanish)
-"(language_spanish)
-Set up language parameters for Castillian Spanish."
-
-  (voice_el_diphone)
-  (set! male1 voice_el_diphone)
-
-  (Parameter.set 'Language 'spanish)
+(define (select_language language)
+"(select_language LANG)
+Chooses language."
+  (language.select language)
 )
 
-(define (select_language language)
-  (cond
-   ((or (equal? language 'britishenglish)
-	(equal? language 'english))  ;; we all know its the *real* English
-    (language_british_english))
-   ((equal? language 'americanenglish)
-    (language_american_english))
-   ((equal? language 'scotsgaelic)
-    (language_scots_gaelic))
-   ((equal? language 'welsh)
-    (language_welsh))
-   ((equal? language 'spanish)
-    (language_castillian_spanish))
-   ((equal? language 'klingon)
-    (language_klingon))
-   (t
-    (print "Unsupported language, using English")
-    (language_british_english))))
+(search-for-languages)
 
-(defvar language_default language_british_english)
+(defvar language_default 'english)
 
 (provide 'languages)
--- /dev/null
+++ festival-2.1~release/lib/languages/language_czech.scm
@@ -0,0 +1,50 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                                                                       ;;
+;;;                Centre for Speech Technology Research                  ;;
+;;;                     University of Edinburgh, UK                       ;;
+;;;                         Copyright (c) 2002                            ;;
+;;;                        All Rights Reserved.                           ;;
+;;;                                                                       ;;
+;;;  Permission is hereby granted, free of charge, to use and distribute  ;;
+;;;  this software and its documentation without restriction, including   ;;
+;;;  without limitation the rights to use, copy, modify, merge, publish,  ;;
+;;;  distribute, sublicense, and/or sell copies of this work, and to      ;;
+;;;  permit persons to whom this work is furnished to do so, subject to   ;;
+;;;  the following conditions:                                            ;;
+;;;   1. The code must retain the above copyright notice, this list of    ;;
+;;;      conditions and the following disclaimer.                         ;;
+;;;   2. Any modifications must be clearly marked as such.                ;;
+;;;   3. Original authors' names are not deleted.                         ;;
+;;;   4. The authors' names are not used to endorse or promote products   ;;
+;;;      derived from this software without specific prior written        ;;
+;;;      permission.                                                      ;;
+;;;                                                                       ;;
+;;;  THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK        ;;
+;;;  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      ;;
+;;;  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   ;;
+;;;  SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE     ;;
+;;;  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    ;;
+;;;  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   ;;
+;;;  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          ;;
+;;;  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       ;;
+;;;  THIS SOFTWARE.                                                       ;;
+;;;                                                                       ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                         Author: 
+;;;                         Date:   
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; Czech language description
+;;
+;;
+
+(define (language_czech)
+"(language_czech)
+Set up language parameters for Czech."
+   (set! male1 (lambda () (voice_czech_ph)))
+   (male1)
+   (Parameter.set 'Language 'czech)
+nil
+)
+
+(language.names.add 'czech (list 'czech ))
--- /dev/null
+++ festival-2.1~release/lib/languages/language_russian.scm
@@ -0,0 +1,49 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                                                                       ;;
+;;;                Centre for Speech Technology Research                  ;;
+;;;                     University of Edinburgh, UK                       ;;
+;;;                         Copyright (c) 2002                            ;;
+;;;                        All Rights Reserved.                           ;;
+;;;                                                                       ;;
+;;;  Permission is hereby granted, free of charge, to use and distribute  ;;
+;;;  this software and its documentation without restriction, including   ;;
+;;;  without limitation the rights to use, copy, modify, merge, publish,  ;;
+;;;  distribute, sublicense, and/or sell copies of this work, and to      ;;
+;;;  permit persons to whom this work is furnished to do so, subject to   ;;
+;;;  the following conditions:                                            ;;
+;;;   1. The code must retain the above copyright notice, this list of    ;;
+;;;      conditions and the following disclaimer.                         ;;
+;;;   2. Any modifications must be clearly marked as such.                ;;
+;;;   3. Original authors' names are not deleted.                         ;;
+;;;   4. The authors' names are not used to endorse or promote products   ;;
+;;;      derived from this software without specific prior written        ;;
+;;;      permission.                                                      ;;
+;;;                                                                       ;;
+;;;  THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK        ;;
+;;;  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      ;;
+;;;  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   ;;
+;;;  SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE     ;;
+;;;  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    ;;
+;;;  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   ;;
+;;;  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          ;;
+;;;  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       ;;
+;;;  THIS SOFTWARE.                                                       ;;
+;;;                                                                       ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                         Author: 
+;;;                         Date:   
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; Czech language description
+;;
+;;
+
+(define (language_russian)
+"(language_russian)
+Set up language parameters for Russian."
+  (set! male1 voice_msu_ru_nsh_clunits)
+  (male1)
+  (Parameter.set 'Language 'russian)
+)
+
+(language.names.add 'czech (list 'czech ))
--- /dev/null
+++ festival-2.1~release/lib/languages/language_italian.scm
@@ -0,0 +1,53 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                                                                       ;;
+;;;                Centre for Speech Technology Research                  ;;
+;;;                     University of Edinburgh, UK                       ;;
+;;;                         Copyright (c) 2002                            ;;
+;;;                        All Rights Reserved.                           ;;
+;;;                                                                       ;;
+;;;  Permission is hereby granted, free of charge, to use and distribute  ;;
+;;;  this software and its documentation without restriction, including   ;;
+;;;  without limitation the rights to use, copy, modify, merge, publish,  ;;
+;;;  distribute, sublicense, and/or sell copies of this work, and to      ;;
+;;;  permit persons to whom this work is furnished to do so, subject to   ;;
+;;;  the following conditions:                                            ;;
+;;;   1. The code must retain the above copyright notice, this list of    ;;
+;;;      conditions and the following disclaimer.                         ;;
+;;;   2. Any modifications must be clearly marked as such.                ;;
+;;;   3. Original authors' names are not deleted.                         ;;
+;;;   4. The authors' names are not used to endorse or promote products   ;;
+;;;      derived from this software without specific prior written        ;;
+;;;      permission.                                                      ;;
+;;;                                                                       ;;
+;;;  THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK        ;;
+;;;  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      ;;
+;;;  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   ;;
+;;;  SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE     ;;
+;;;  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    ;;
+;;;  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   ;;
+;;;  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          ;;
+;;;  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       ;;
+;;;  THIS SOFTWARE.                                                       ;;
+;;;                                                                       ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                         Author: 
+;;;                         Date:   
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; Italian language description
+;;
+;;
+
+(define (language_italian)
+"(language_italian)
+Set up language parameters for Italian."
+
+  (if (symbol-bound? 'voice_lp_diphone)
+      (set! female1 (lambda () (voice_lp_diphone))))
+  (set! male1 (lambda () (voice_pc_diphone)))
+
+  (male1)
+  (Parameter.set 'Language 'italian)
+)
+
+(language.names.add 'italian (list 'italian ))
--- /dev/null
+++ festival-2.1~release/lib/languages/language_american_english.scm
@@ -0,0 +1,55 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                                                                       ;;
+;;;                Centre for Speech Technology Research                  ;;
+;;;                     University of Edinburgh, UK                       ;;
+;;;                         Copyright (c) 2002                            ;;
+;;;                        All Rights Reserved.                           ;;
+;;;                                                                       ;;
+;;;  Permission is hereby granted, free of charge, to use and distribute  ;;
+;;;  this software and its documentation without restriction, including   ;;
+;;;  without limitation the rights to use, copy, modify, merge, publish,  ;;
+;;;  distribute, sublicense, and/or sell copies of this work, and to      ;;
+;;;  permit persons to whom this work is furnished to do so, subject to   ;;
+;;;  the following conditions:                                            ;;
+;;;   1. The code must retain the above copyright notice, this list of    ;;
+;;;      conditions and the following disclaimer.                         ;;
+;;;   2. Any modifications must be clearly marked as such.                ;;
+;;;   3. Original authors' names are not deleted.                         ;;
+;;;   4. The authors' names are not used to endorse or promote products   ;;
+;;;      derived from this software without specific prior written        ;;
+;;;      permission.                                                      ;;
+;;;                                                                       ;;
+;;;  THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK        ;;
+;;;  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      ;;
+;;;  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   ;;
+;;;  SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE     ;;
+;;;  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    ;;
+;;;  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   ;;
+;;;  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          ;;
+;;;  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       ;;
+;;;  THIS SOFTWARE.                                                       ;;
+;;;                                                                       ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                         Author: 
+;;;                         Date:   
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; American English language description
+;;
+;;
+
+(define (language_american_english)
+"(language_american_english)
+Set up language parameters for Aemerican English."
+
+  (if (symbol-bound? 'voice_kal_diphone)
+      (set! female1 (lambda () (voice_kal_diphone))))
+  (set! male1 (lambda () (voice_ked_diphone)))
+
+  (male1)
+  (Parameter.set 'Language 'americanenglish)
+nil
+)
+
+
+(language.names.add 'american_english (list 'americanenglish ))
--- /dev/null
+++ festival-2.1~release/lib/languages/language_scots_gaelic.scm
@@ -0,0 +1,49 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                                                                       ;;
+;;;                Centre for Speech Technology Research                  ;;
+;;;                     University of Edinburgh, UK                       ;;
+;;;                         Copyright (c) 2002                            ;;
+;;;                        All Rights Reserved.                           ;;
+;;;                                                                       ;;
+;;;  Permission is hereby granted, free of charge, to use and distribute  ;;
+;;;  this software and its documentation without restriction, including   ;;
+;;;  without limitation the rights to use, copy, modify, merge, publish,  ;;
+;;;  distribute, sublicense, and/or sell copies of this work, and to      ;;
+;;;  permit persons to whom this work is furnished to do so, subject to   ;;
+;;;  the following conditions:                                            ;;
+;;;   1. The code must retain the above copyright notice, this list of    ;;
+;;;      conditions and the following disclaimer.                         ;;
+;;;   2. Any modifications must be clearly marked as such.                ;;
+;;;   3. Original authors' names are not deleted.                         ;;
+;;;   4. The authors' names are not used to endorse or promote products   ;;
+;;;      derived from this software without specific prior written        ;;
+;;;      permission.                                                      ;;
+;;;                                                                       ;;
+;;;  THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK        ;;
+;;;  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      ;;
+;;;  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   ;;
+;;;  SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE     ;;
+;;;  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    ;;
+;;;  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   ;;
+;;;  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          ;;
+;;;  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       ;;
+;;;  THIS SOFTWARE.                                                       ;;
+;;;                                                                       ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                         Author: 
+;;;                         Date:   
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; Scots Gaelic language description
+;;
+;;
+
+(define (language_scots_gaelic)
+"(language_scots_gaelic)
+Set up language parameters for Scots Gaelic."
+  (error "Scots Gaelic not yet supported.")
+
+  (Parameter.set 'Language 'scotsgaelic)
+)
+
+(language.names.add 'scotsgaelic (list 'scotsgaelic ))
--- /dev/null
+++ festival-2.1~release/lib/languages/language_british_english.scm
@@ -0,0 +1,58 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                                                                       ;;
+;;;                Centre for Speech Technology Research                  ;;
+;;;                     University of Edinburgh, UK                       ;;
+;;;                         Copyright (c) 2002                            ;;
+;;;                        All Rights Reserved.                           ;;
+;;;                                                                       ;;
+;;;  Permission is hereby granted, free of charge, to use and distribute  ;;
+;;;  this software and its documentation without restriction, including   ;;
+;;;  without limitation the rights to use, copy, modify, merge, publish,  ;;
+;;;  distribute, sublicense, and/or sell copies of this work, and to      ;;
+;;;  permit persons to whom this work is furnished to do so, subject to   ;;
+;;;  the following conditions:                                            ;;
+;;;   1. The code must retain the above copyright notice, this list of    ;;
+;;;      conditions and the following disclaimer.                         ;;
+;;;   2. Any modifications must be clearly marked as such.                ;;
+;;;   3. Original authors' names are not deleted.                         ;;
+;;;   4. The authors' names are not used to endorse or promote products   ;;
+;;;      derived from this software without specific prior written        ;;
+;;;      permission.                                                      ;;
+;;;                                                                       ;;
+;;;  THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK        ;;
+;;;  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      ;;
+;;;  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   ;;
+;;;  SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE     ;;
+;;;  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    ;;
+;;;  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   ;;
+;;;  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          ;;
+;;;  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       ;;
+;;;  THIS SOFTWARE.                                                       ;;
+;;;                                                                       ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                         Author: 
+;;;                         Date:  
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; British English language description
+;;
+;;
+
+(define (language_british_english)
+"(language_british_english)
+Set up language parameters for British English."
+  (require 'voices)
+  ;;  Will get more elaborate, with different choices of voices in language
+
+  (set! male1 (lambda () (voice_rab_diphone)))
+  (set! male2 (lambda () (voice_don_diphone)))
+  (if (symbol-bound? 'voice_gsw_diphone)
+      (set! male3 voice_gsw_diphone))
+  (if (symbol-bound? 'voice_gsw_450)
+      (set! male4 voice_gsw_450))
+
+  (male1)
+  (Parameter.set 'Language 'britishenglish)
+)
+
+(language.names.add 'british_english (list 'britishenglish 'english));; we all know its the *real* English
--- /dev/null
+++ festival-2.1~release/lib/languages/language_finnish.scm
@@ -0,0 +1,56 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                                                                       ;;
+;;;                Centre for Speech Technology Research                  ;;
+;;;                     University of Edinburgh, UK                       ;;
+;;;                         Copyright (c) 2002                            ;;
+;;;                        All Rights Reserved.                           ;;
+;;;                                                                       ;;
+;;;  Permission is hereby granted, free of charge, to use and distribute  ;;
+;;;  this software and its documentation without restriction, including   ;;
+;;;  without limitation the rights to use, copy, modify, merge, publish,  ;;
+;;;  distribute, sublicense, and/or sell copies of this work, and to      ;;
+;;;  permit persons to whom this work is furnished to do so, subject to   ;;
+;;;  the following conditions:                                            ;;
+;;;   1. The code must retain the above copyright notice, this list of    ;;
+;;;      conditions and the following disclaimer.                         ;;
+;;;   2. Any modifications must be clearly marked as such.                ;;
+;;;   3. Original authors' names are not deleted.                         ;;
+;;;   4. The authors' names are not used to endorse or promote products   ;;
+;;;      derived from this software without specific prior written        ;;
+;;;      permission.                                                      ;;
+;;;                                                                       ;;
+;;;  THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK        ;;
+;;;  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      ;;
+;;;  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   ;;
+;;;  SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE     ;;
+;;;  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    ;;
+;;;  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   ;;
+;;;  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          ;;
+;;;  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       ;;
+;;;  THIS SOFTWARE.                                                       ;;
+;;;                                                                       ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                         Author: 
+;;;                         Date:   
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; Finnish language description
+;;
+;;
+
+
+(define (language_finnish)
+"(language_finnish)
+Set up language parameters for Finnish."
+  (if (symbol-bound? 'voice_suo_fi_lj_diphone)
+      (set! female1 (lambda () (voice_suo_fi_lj_diphone))))
+  (set! male1 (lambda () (voice_hy_fi_mv_diphone)))
+
+  (male1)
+  (Parameter.set 'Language 'finnish)
+nil
+)
+
+
+
+(language.names.add 'finnish (list 'finnish ))
--- /dev/null
+++ festival-2.1~release/lib/languages/language_welsh.scm
@@ -0,0 +1,52 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                                                                       ;;
+;;;                Centre for Speech Technology Research                  ;;
+;;;                     University of Edinburgh, UK                       ;;
+;;;                         Copyright (c) 2002                            ;;
+;;;                        All Rights Reserved.                           ;;
+;;;                                                                       ;;
+;;;  Permission is hereby granted, free of charge, to use and distribute  ;;
+;;;  this software and its documentation without restriction, including   ;;
+;;;  without limitation the rights to use, copy, modify, merge, publish,  ;;
+;;;  distribute, sublicense, and/or sell copies of this work, and to      ;;
+;;;  permit persons to whom this work is furnished to do so, subject to   ;;
+;;;  the following conditions:                                            ;;
+;;;   1. The code must retain the above copyright notice, this list of    ;;
+;;;      conditions and the following disclaimer.                         ;;
+;;;   2. Any modifications must be clearly marked as such.                ;;
+;;;   3. Original authors' names are not deleted.                         ;;
+;;;   4. The authors' names are not used to endorse or promote products   ;;
+;;;      derived from this software without specific prior written        ;;
+;;;      permission.                                                      ;;
+;;;                                                                       ;;
+;;;  THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK        ;;
+;;;  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      ;;
+;;;  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   ;;
+;;;  SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE     ;;
+;;;  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    ;;
+;;;  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   ;;
+;;;  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          ;;
+;;;  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       ;;
+;;;  THIS SOFTWARE.                                                       ;;
+;;;                                                                       ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                         Author: 
+;;;                         Date:   
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; Welsh language description
+;;
+;;
+
+(define (language_welsh)
+"(language_welsh)
+Set up language parameters for Welsh."
+
+  (set! male1 (lambda () (voice_welsh_hl)))
+
+  (male1)
+  (Parameter.set 'Language 'welsh)
+)
+
+
+(language.names.add 'welsh (list 'welsh ))
--- /dev/null
+++ festival-2.1~release/lib/languages/language_castillian_spanish.scm
@@ -0,0 +1,51 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                                                                       ;;
+;;;                Centre for Speech Technology Research                  ;;
+;;;                     University of Edinburgh, UK                       ;;
+;;;                         Copyright (c) 2002                            ;;
+;;;                        All Rights Reserved.                           ;;
+;;;                                                                       ;;
+;;;  Permission is hereby granted, free of charge, to use and distribute  ;;
+;;;  this software and its documentation without restriction, including   ;;
+;;;  without limitation the rights to use, copy, modify, merge, publish,  ;;
+;;;  distribute, sublicense, and/or sell copies of this work, and to      ;;
+;;;  permit persons to whom this work is furnished to do so, subject to   ;;
+;;;  the following conditions:                                            ;;
+;;;   1. The code must retain the above copyright notice, this list of    ;;
+;;;      conditions and the following disclaimer.                         ;;
+;;;   2. Any modifications must be clearly marked as such.                ;;
+;;;   3. Original authors' names are not deleted.                         ;;
+;;;   4. The authors' names are not used to endorse or promote products   ;;
+;;;      derived from this software without specific prior written        ;;
+;;;      permission.                                                      ;;
+;;;                                                                       ;;
+;;;  THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK        ;;
+;;;  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      ;;
+;;;  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   ;;
+;;;  SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE     ;;
+;;;  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    ;;
+;;;  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   ;;
+;;;  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          ;;
+;;;  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       ;;
+;;;  THIS SOFTWARE.                                                       ;;
+;;;                                                                       ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;                         Author: 
+;;;                         Date:   
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; Castillian Spanish language description
+;;
+;;
+
+(define (language_castillian_spanish)
+"(language_spanish)
+Set up language parameters for Castillian Spanish."
+
+  (voice_el_diphone)
+  (set! male1 (lambda () (voice_el_diphone)))
+
+  (Parameter.set 'Language 'spanish)
+)
+
+(language.names.add 'castillian_spanish (list 'spanish 'castellano))
