summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2007-02-17 21:44:42 +0000
committeraarne <aarne@cs.chalmers.se>2007-02-17 21:44:42 +0000
commit1d803dff1056e8cc04e9ef3998a7107b952b99c1 (patch)
tree32779bbc586c2dc24b0396816cc71414bb774cd2
parentd9e0521c5810e4214f20f0a2ebe737316fb5757d (diff)
essential LP phrases, pron table
-rw-r--r--examples/travel/Essential.gf30
-rw-r--r--examples/travel/EssentialThai.gf44
-rw-r--r--src/GF/Text/Thai.hs39
3 files changed, 102 insertions, 11 deletions
diff --git a/examples/travel/Essential.gf b/examples/travel/Essential.gf
new file mode 100644
index 000000000..f90dc45b6
--- /dev/null
+++ b/examples/travel/Essential.gf
@@ -0,0 +1,30 @@
+-- the essential phrases from Lone Planet Thai Phrasebook
+
+abstract Essential = {
+
+cat
+ Phrase ;
+ Number ;
+
+fun
+ Hello : Phrase ;
+ Goodbye : Phrase ;
+ Please : Phrase ;
+ ThankYou : Phrase ;
+ YoureWelcome : Phrase ;
+ Yes : Phrase ;
+ No : Phrase ;
+ ExcuseAttention : Phrase ;
+ ExcuseGetPast : Phrase ;
+ Sorry : Phrase ;
+ IUnderstand : Phrase ;
+ IDontUnderstand : Phrase ;
+ Help : Phrase ;
+ WhereAreToilets : Phrase ;
+
+
+ SayNumber : Number -> Phrase ;
+
+ One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten : Number ;
+
+} \ No newline at end of file
diff --git a/examples/travel/EssentialThai.gf b/examples/travel/EssentialThai.gf
new file mode 100644
index 000000000..25255b9a5
--- /dev/null
+++ b/examples/travel/EssentialThai.gf
@@ -0,0 +1,44 @@
+--# -path=.:prelude:resource-1.0/thai
+
+-- the essential phrases from Lone Planet Thai Phrasebook
+
+concrete EssentialThai of Essential = open Prelude, StringsTha in {
+
+flags unlexer=concat ;
+startcat=Phrase ;
+
+lincat
+ Phrase = SS ;
+ Number = SS ;
+
+lin
+ Hello = ss (sawat_s ++ dii_s) ;
+ Goodbye = ss (laa_s ++ koon_s) ;
+ Please = ss (khoo_s) ;
+ ThankYou = ss (khoop_s ++ khun_s) ;
+ YoureWelcome = ss (yin_s ++ dii_s) ;
+ Yes = ss (chay_s) ;
+ No = ss (may_s) ;
+ ExcuseAttention = ss (khoo_s ++ thoot_s) ;
+ ExcuseGetPast = ss (khoo_s ++ aphai_s) ;
+ Sorry = ss (khoo_s ++ thoot_s) ;
+ IUnderstand = ss (phom_s ++ khow_s ++ jai_s) ;
+ IDontUnderstand = ss (phom_s ++ may_s ++ khow_s ++ jai_s) ;
+ Help = ss (chuay_s ++ duay_s) ;
+ WhereAreToilets = ss (hoog_s ++ nam_s ++ yuu_s ++ thii_s ++ nai_s) ;
+
+
+ SayNumber n = n ;
+
+ One = ss (nvg_s) ;
+ Two = ss (soog_s) ;
+ Three = ss (saam_s) ;
+ Four = ss (sii_s) ;
+ Five = ss (haa_s) ;
+ Six = ss (hok_s) ;
+ Seven = ss (cet_s) ;
+ Eight = ss (peet_s) ;
+ Nine = ss (kaaw_s) ;
+ Ten = ss (sip_s) ;
+
+} \ No newline at end of file
diff --git a/src/GF/Text/Thai.hs b/src/GF/Text/Thai.hs
index 2ac752a2b..2b9456f06 100644
--- a/src/GF/Text/Thai.hs
+++ b/src/GF/Text/Thai.hs
@@ -216,9 +216,11 @@ getSyllable = foldl get (Syll [] [] [] [] [] [] False False) where
test1 = testThai "k2wa:mrak"
test2 = putStrLn $ thaiTable
test3 = do
- writeFile "thai.html" "<html><body><pre>"
- appendFile "thai.html" thaiTable
- appendFile "thai.html" "</pre></body></html>"
+ writeFile "thai.txt" "Thai Character Coding in GF\nAR 2007\n"
+ appendFile "thai.txt" thaiTable
+test4 = do
+ writeFile "alphthai.txt" "Thai Characters by Pronunciation\nAR 2007\n"
+ appendFile "alphthai.txt" thaiTableAlph
testThai :: String -> IO ()
@@ -256,18 +258,33 @@ readClass s = case s of
thaiTable :: String
-thaiTable = unlines [
- "\t" ++
- hex c ++ "\t" ++
- encodeUTF8 (showThai s) ++ "\t" ++
- s ++ "\t" ++
- pronThai s ++ "\t" ++
- [f] ++ "\t" ++
- [q] ++ "\t"
+thaiTable = unlines $ ("\n|| hex | thai | trans | pron | fin | class |" ) : [
+ "| " ++
+ hex c ++ " | " ++
+ encodeUTF8 (showThai s) ++ " | " ++
+ s ++ " | " ++
+ pronThai s ++ " | " ++
+ [f] ++ " | " ++
+ [q] ++ " | "
|
(c,q,f,s) <- zip4 allThaiCodes heights finals allThaiTrans
]
+thaiTableAlph :: String
+thaiTableAlph = unlines $ ("\n|| pron | thai | trans |" ) : [
+ "| " ++ a ++
+ " | " ++ unwords (map (encodeUTF8 . showThai) ss) ++
+ " | " ++ unwords ss ++
+ " |"
+ |
+ (a,ss) <- allProns
+ ]
+ where
+ prons = sort $ nub
+ [p | s <- allThaiTrans, let p = pronThai s, not (null p),isAlpha (head p)]
+ allProns =
+ [(a,[s | s <- allThaiTrans, pronThai s == a]) | a <- prons]
+
showThai s = case s of
"-" -> "-"
--- v:_ | elem v "ivu" -> map (toEnum . mkThaiChar) ["O",s]