--- /dev/null
+//===============================
+// unit tests getlanguage
+// INRIA 2008
+// @author Sylvestre LEDRU
+//===============================
+// Switch to french with small code
+lang="fr"; setlanguage(lang); if getlanguage() <> "fr_FR" then pause, end
+// Switch to english with small code
+lang="en"; setlanguage(lang); if getlanguage() <> "en_US" then pause, end
+// Switch to english with full code
+lang="en_US"; setlanguage(lang); if getlanguage() <> "en_US" then pause, end
+// Switch to french with full code
+lang="fr_FR"; setlanguage(lang); if getlanguage() <> "fr_FR" then pause, end
+// Switch to default lang by calling a wrong lang
+lang="ffff"; setlanguage(lang); if getlanguage() <> "en_US" then pause, end
+Unsupported language 'ffff'.
+Switching to default language : 'en_US'.
--- /dev/null
+//===============================
+// unit tests getlanguage
+// INRIA 2008
+// @author Sylvestre LEDRU
+//===============================
+
+// Switch to french with small code
+lang="fr"; setlanguage(lang); if getlanguage() <> "fr_FR" then pause, end
+
+// Switch to english with small code
+lang="en"; setlanguage(lang); if getlanguage() <> "en_US" then pause, end
+
+// Switch to english with full code
+lang="en_US"; setlanguage(lang); if getlanguage() <> "en_US" then pause, end
+
+// Switch to french with full code
+lang="fr_FR"; setlanguage(lang); if getlanguage() <> "fr_FR" then pause, end
+
+// Switch to default lang by calling a wrong lang
+lang="ffff"; setlanguage(lang); if getlanguage() <> "en_US" then pause, end
--- /dev/null
+//===============================
+// unit tests setlanguage
+// INRIA 2008
+// @author Sylvestre LEDRU
+//===============================
+// Void call
+if execstr('setlanguage()','errcatch')==0 then bugmes();quit;end
+// Double call
+lang="fr_FR"; lang2="en_US"; if execstr('setlanguage(lang, lang2)','errcatch')==0 then bugmes();quit;end
+// Empty call
+lang=""; if setlanguage(lang) <> %F then bugmes();quit;end
+Unsupported language ''.
+Switching to default language : 'en_US'.
+// Switch to english
+lang="en_US"; if setlanguage(lang) <> %T then pause, end
+// Switch to english with small code
+lang="en"; if setlanguage(lang) <> %T then pause, end
+// Switch to french with small code
+lang="fr"; if setlanguage(lang) <> %T then pause, end
+// Switch to a wrong code
+lang="f"; if setlanguage(lang) <> %F then pause, end
+Unsupported language 'f'.
+Switching to default language : 'en_US'.
+// Switch to a wrong code
+lang="ff"; if setlanguage(lang) <> %F then pause, end
+Unsupported language 'ff'.
+Switching to default language : 'en_US'.
+// Switch to a wrong code
+lang="fff"; if setlanguage(lang) <> %F then pause, end
+Unsupported language 'fff'.
+Switching to default language : 'en_US'.
+// Switch to a wrong code
+lang="ffff"; if setlanguage(lang) <> %F then pause, end
+Unsupported language 'ffff'.
+Switching to default language : 'en_US'.
--- /dev/null
+//===============================
+// unit tests setlanguage
+// INRIA 2008
+// @author Sylvestre LEDRU
+//===============================
+
+// Void call
+if execstr('setlanguage()','errcatch')==0 then pause,end
+
+// Double call
+lang="fr_FR"; lang2="en_US"; if execstr('setlanguage(lang, lang2)','errcatch')==0 then pause,end
+
+// Empty call
+lang=""; if setlanguage(lang) <> %F then pause,end
+
+// Switch to english
+lang="en_US"; if setlanguage(lang) <> %T then pause, end
+
+// Switch to english with small code
+lang="en"; if setlanguage(lang) <> %T then pause, end
+
+// Switch to french with small code
+lang="fr"; if setlanguage(lang) <> %T then pause, end
+
+// Switch to a wrong code
+lang="f"; if setlanguage(lang) <> %F then pause, end
+
+// Switch to a wrong code
+lang="ff"; if setlanguage(lang) <> %F then pause, end
+
+// Switch to a wrong code
+lang="fff"; if setlanguage(lang) <> %F then pause, end
+
+// Switch to a wrong code
+lang="ffff"; if setlanguage(lang) <> %F then pause, end