Wednesday, January 20, 2016

Project (57) English-Myanmar Dictionary




အခု English-Myanmar Dictionary project မွာ "nnldictionary.db" ဆိုတဲ့ database file ကို အသံုးျပဳထားပါတယ္။ ဒီဖိုင္ထဲမွာ EMDictionary ဆိုတဲ့ Table ပါၿပီး Column ေတြကေတာ့ English, Type နဲ႔ Myanmar ေတြ ျဖစ္ပါတယ္။

app ကို run လုိက္ရင္ English ဒါမွမဟုတ္ ျမန္မာ စာလံုး ရိုက္ထည့္ၿပီး ရွာႏိုင္တဲ့ EditText, အသံထြက္ ဖတ္ေပးႏိုင္တဲ့ "Spk" button ေတြကို ေတြ႕ရပါမယ္။ Whole word ဆိုတဲ့ button က အစအဆံုး တလံုးထဲျဖစ္တဲ့ စာလံုးကို ရွာေပးမွာပါ။ Contains ဆိုတဲ့ button ကေတာ့  အလယ္မွာ ပါ၀င္ေနတဲ့ စာလံုးေတြကို ရွာေပးမယ္။ Starts with က ရွာတဲ့ စာလံုးနဲ႔ စတဲ့ဟာေတြ၊ Ends with ကေတာ့ ရွာတဲ့ စာလံုးနဲ႔ ဆံုးတဲ့ဟာေတြကို ျပေပးေစပါမယ္။

"ျမန္မာစာလံုးရွာရန္" ဆိုတဲ့ button ကေတာ့ EditText ထဲမွာ ျမန္မာစာလံုး ရိုက္ထားရင္ Dictionary တခုလံုးထဲက အဲဒီစာလံုးပါတဲ့ ဟာေတြကို ထုတ္ျပပါလိမ့္မယ္။

ရွာလို႔ရတဲ့ Meaning ေတြကိုေတာ့ ေအာက္က ScrollView ထဲမွာ ေဖာ္ျပေပးပါလိမ့္မယ္။ ဒါကို LongClick ႏွိပ္ထားရင္ ရွာထားတဲ့ ဟာေတြကို ClipBoard ေပၚကို copy ကူးသြားပါမယ္။ Notepad တခုမွာ ျပန္ၿပီး paste လုပ္ႏိုင္ပါတယ္။

အသံုးျပဳႏိုင္တဲ့ ပံုစံေတြကေတာ့-
၁။ English စာလံုး Meaning ရွာရန္။
၂။ အသံထြက္ ေလ့လာရန္။
၃။ အဂၤလိပ္စာ ေလ့လာရန္။ ဥပမာ -tious နဲ႔ အဆံုးသတ္တဲ့ အဂၤလိပ္စာလံုးေတြကို ရွာၿပီး ေလ့လာႏိုင္တယ္။ con- နဲ႔ စတဲ့ စာလံုးေတြကို ေလ့လာႏိုင္တယ္။
၄။ ျမန္မာလို သိတာကို အဂၤလိပ္လို ျပန္ရွာဖို႔။ ဥပမာ- ပန္း။

မွတ္ခ်က္။ Project source code ေတြကို B4A မွာ ပံုစံတူ သံုးႏိုင္ပါတယ္။

======================

Main
====

#English-Myanmar dictionary

AddEditText("edt1",0%x,0%y,80%x,10%y,"")
SetHint("edt1","English  ျမန္မာ")
SetColor("edt1",0,argb(255,200,250,200))


AddButton("btn1",0%x,10%y,50%x,8%y,"")
SetText("btn1","Whole word")

AddButton("btn2",50%x,10%y,50%x,8%y,"")
SetText("btn2","Contains")

AddButton("btn3",0%x,18%y,50%x,8%y,"")
SetText("btn3","Starts with")

AddButton("btn4",50%x,18%y,50%x,8%y,"")
SetText("btn4","Ends with")

AddButton("btn5",0%x,26%y,100%x,10%y,"")
SetText("btn5","ျမန္မာစာလံုး ရွာပါ")

AddButton("btn6",80%x,0%y,20%x,10%y,"")
SetText("btn6","Spk")
SetEnabled("btn6",false)

AddScrollView("sv1",0%x,36%y,100%x,64%y,"")
GetPanel("sv1","pnl")
AddLabel("lb1",2%x,0%y,96%x,64%y,"pnl")
SetColor("lb1",0,argb(255,250,200,250))

SetOnLongClickListener("lb1")

SetActivityTitle("Scripter English-Myanmar Dictionary")

FileCopy(FileDirAssets,"nnldictionary.db",FileDirInternal,"nnldictionary.db")

Dim_SQL(FileDirInternal,"nnldictionary.db",true)

Dim_TTS


==========

EventsSubs
==========

Sub Button_Click(who)

If (who="btn6") Then

TTS_Speak(GetText("edt1"),true)

Else

Select who

Case "btn1"
qq="SELECT * FROM EMDictionary WHERE English='" & GetText("edt1") & "'"

Case "btn2"
qq="SELECT * FROM EMDictionary WHERE English LIKE '%" & GetText("edt1") & "%'"

Case "btn3"
qq="SELECT * FROM EMDictionary WHERE English LIKE '" & GetText("edt1") & "%'"

Case "btn4"
qq="SELECT * FROM EMDictionary WHERE English LIKE '%" & GetText("edt1") & "'"

Case "btn5"
qq="SELECT * FROM EMDictionary WHERE Myanmar LIKE '%" & GetText("edt1") & "%'"

End Select

SQL_execquery(qq,"cursor1")
txt=""

If (Cursor_getrowcount("cursor1")>0) Then
For i=0 to Cursor_getrowcount("cursor1")-1
Cursor_setposition("cursor1",i)
txt=txt & Cursor_getString("cursor1","English") & crlf
txt=txt & Cursor_getString("cursor1","Type") & crlf
txt=txt & Cursor_getString("cursor1","Myanmar") & crlf & crlf
txt=txt & "==========" & crlf & crlf
Next

Else
txt="Not found."
End If

SetText("lb1",txt)
AdjustLabelHeight("lb1")
SetHeight("pnl",GetHeight("lb1"))

End If
End Sub

# ===================

Sub View_OnLongClick(who)
If who="lb1" Then
Clipboard_SetText(GetText("lb1"))
ShowToast("Copied to clipboard.",false)
End If
return false
End Sub

==========

"xevents" module
================

Sub TTS_Ready
SetEnabled("btn6",true)
End Sub


================

Project dictionary.zip file ကို ေအာက္က Link မွာ download လုပ္ႏိုင္ပါတယ္။

dictionary.zip

=======================